Skip to content

feat(Interaction): full interaction framework with concurrent semantics, open composition, and protocol frontends#433

Draft
quangvdao wants to merge 132 commits intomainfrom
quang/core-rebuild
Draft

feat(Interaction): full interaction framework with concurrent semantics, open composition, and protocol frontends#433
quangvdao wants to merge 132 commits intomainfrom
quang/core-rebuild

Conversation

@quangvdao
Copy link
Copy Markdown
Collaborator

@quangvdao quangvdao commented Mar 28, 2026

Summary

This PR introduces the Interaction framework: a complete, sorry-free formalization of interactive protocol semantics in Lean 4, replacing the old flat ProtocolSpec model with a dependent-type-native design where later protocol rounds can depend on earlier moves.

The framework is organized in clean, acyclic layers, from sequential two-party protocols up to concurrent open-system composition. It also includes interaction-native frontends for Sumcheck and FRI, plus supporting computable polynomial infrastructure.

Scale: 126 commits, 211 files changed, ~41K lines added across 66 Interaction modules, 12 proof-system modules, 2 CompPoly modules, 7 blueprint chapters, 5 design documents, and CI/tooling updates.

What's in this PR

1. Core sequential interaction (Interaction/Basic/)

  • Spec: W-type interaction trees with dependent branching (move types at later rounds depend on earlier moves)
  • Transcript: complete plays through a Spec
  • Decoration: per-node metadata with functorial mapping
  • Node: realized node contexts, schemas, and telescope-style descriptions
  • Syntax / Shape / Interaction: generic local participant syntax, functorial refinements, and local execution laws
  • Strategy: one-player strategies with monadic effects
  • Append / Replicate / Chain / StateChain: sequential composition, iteration, continuation-style telescopes, and stage-indexed state chains
  • BundledMonad / MonadDecoration: per-node monadic effects
  • Ownership: owner-based interaction model for building SyntaxOver objects

2. Two-party protocols (Interaction/TwoParty/)

  • Role: sender/receiver roles with Action / Dual / interact
  • Decoration: RoleDecoration plus RoleMonadContext / RolePairedMonadContext
  • Strategy: Strategy.withRoles, Counterpart, PublicCoinCounterpart with transcript replay, runWithRoles execution, runWithRolesAndMonads for per-node monads
  • Compose: append, replicate, stateChain composition for strategies and counterparts
  • Refine: Role.Refine for role-aware data refinement (sender-specific data, no receiver padding)
  • Swap: involutive role swap with composition lemmas
  • Examples: concrete rfl proofs showing computed strategy types

3. Multiparty local views (Interaction/Multiparty/)

  • Core: LocalView inductive (active / observe / hidden / quotient) for partial observability, localSyntax, multiparty Strategy via SyntaxOver.comap
  • Profile: per-party ViewProfile for heterogeneous observation across parties
  • Broadcast: public-transcript specialization (one acts, all observe)
  • Directed: point-to-point sender/receiver edge decorations
  • Examples: three-party knowledge-soundness, adversarial delivery, adaptive corruption scenarios
  • Multiparty.lean (root): N-party as Spec + PartyDecoration, with MPST-style projection to roles via toRoles

4. Concurrent semantics (Interaction/Concurrent/)

Structural layer:

  • Spec: structural concurrent syntax via binary par
  • Frontier / Trace: enabled events and scheduler linearizations
  • Independence / Interleaving: true-concurrency diamond lemma and trace equivalence

Dynamic process layer:

  • Process: StepOver / ProcessOver (context-parametric) and closed-world Step / Process specializations with NodeSemantics (controllers + LocalView)
  • Machine: state-indexed transition system frontend
  • Tree: structural-tree frontend bridging to Process
  • Control / Profile / Current: scheduler ownership, per-party profiles, and current local views

Verification layer:

  • Execution / Run: finite prefixes and infinite runs with metadata extraction
  • Observation: transcript matching relations (by controller, event, ticket, observation)
  • Refinement: forward simulation with behavior preservation
  • Bisimulation / Equivalence: symmetric refinement and packaged equivalence notions
  • Policy: executable step policies with trace compliance
  • Fairness: weak/strong fairness via stable tickets
  • Liveness: temporal predicates, system-level safety/liveness under fairness

Open composition layer:

  • Interface: Interface := PFunctor, Packet, Hom (chart), QueryHom (lens), Equiv, sum with composition laws
  • OpenTheory: boundary-indexed algebra of open systems (map / par / wire / plug) with IsLawful typeclasses (functoriality, naturality)
  • OpenSyntax: tagless-final free lawful model (Expr), proving OpenTheory coherence

Examples: in-flight delivery, looping processes, ticket bisimulation, observation simulation

5. Reductions and security (Interaction/Reduction.lean, Security.lean)

  • Prover / Verifier / Reduction: interactive protocol participants over Spec + RoleDecoration
  • PublicCoinVerifier: public-coin specialization
  • Reduction.comp / stateChainComp / ofChain: sequential and chain-based composition
  • Completeness / Soundness / Knowledge soundness: round-by-round analysis via claim trees
  • ClaimTree / KnowledgeClaimTree: per-round security decomposition

6. Oracle layer (Interaction/Oracle/)

  • Core: OracleDecoration attaching path-dependent oracle interfaces to interaction nodes, OracleCounterpart, OracleProver, OracleReduction, query routing
  • Execution: runWithOracleCounterpart, accumulated oracle specs, honest public/execution equivalence
  • Continuation: sequential and multi-round oracle reduction composition (Chain, comp)
  • StateChain: oracle-aware state-chain verifier and reduction composition

7. Oracle security and reification (OracleSecurity.lean, OracleReification.lean)

  • Behavior-first security: completeness, soundness, knowledge soundness for oracle reductions
  • Reification bridge between abstract behaviors and concrete oracle statements
  • Proof that reified knowledge soundness implies reified soundness

8. Boundaries (Interaction/Boundary/)

  • Core: Statement / Witness / Context for same-transcript interface adaptation
  • Oracle: OracleStatementAccess, pullbackCounterpart for oracle boundary transport
  • Reification: OracleStatementReification, Realizes coherence predicate
  • Security / OracleSecurity / Compatibility: transport of soundness, completeness, and simulation across boundaries

9. Fiat-Shamir (Interaction/FiatShamir/)

  • Basic: ReplayOracle, MessagesOnly, deriveTranscript
  • Transform: full Fiat-Shamir transform for provers, verifiers, and reductions

10. Proof system frontends

Sumcheck (ProofSystem/Sumcheck/Interaction/):

  • Algebraic core: RoundClaim, domain summation, round specs with role decorations
  • Single-round oracle reduction with proved execution equivalences
  • N-round composition via stateChainComp (security proofs are scaffolding)
  • Computable polynomial operations for sum-check (CompPoly.lean)

FRI (ProofSystem/Fri/Interaction/):

  • Domain geometry, degree bounds, evaluation indexing
  • Fold round / fold phase / final fold as oracle continuations
  • Query round with consistency checks
  • Full protocol composition via OracleReduction.comp

CompPoly (Data/CompPoly/):

  • CDegreeLE / CMvDegreeLE degree-bounded types with OracleInterface instances
  • splitNth / foldNth for computable polynomial splitting/folding

11. Documentation and infrastructure

Design documents:

  • PORTING.md: core rebuild progress tracker
  • INTERACTION_BOUNDARIES.md: boundary framework specification
  • INTERACTION_CONCURRENT_SPEC.md: concurrent extension design reference
  • INTERACTION_PROTOCOL_ROADMAP.md: literature-grounded protocol roadmap
  • INTERACTION_BRACHA_VERIFICATION.md: Bracha RBC as benchmark target

Blueprint: New "Interaction Framework" chapter with 7 sections (foundations, composition, two-party, Fiat-Shamir, oracle, security, boundary)

Tooling:

  • scripts/check-warning-log.py: new CI warning budget enforcement
  • scripts/validate.sh: updated to run warning checks on Interaction/ and Data/ subtrees (excluding sorry warnings)
  • Dependency bumps: CompPoly to fe33688, VCVio to 2fec633

Wiki: docs/wiki/repo-map.md updated with Interaction module map

Sorry status

  • ArkLib/Interaction/ (66 files): 0 sorries (the entire abstract framework is sorry-free)
  • Data/CompPoly/Fold.lean: 3 sorries (bridge lemmas to Mathlib toPoly)
  • ProofSystem/Fri/Interaction/Core.lean: 2 sorries (honest fold degree bounds)
  • ProofSystem/Sumcheck/Interaction/CompPoly.lean: 14 sorries (evaluation, degree, and ring hom lemmas)
  • ProofSystem/Fri/RoundConsistency.lean: 1 sorry (Lagrange completeness)
  • All sorries are in new code (not regressions); the canonical Sumcheck General.lean security proofs use trivial as explicit placeholders

Test plan

  • lake build ArkLib succeeds
  • ./scripts/validate.sh passes (warning budget, import check, docs integrity)
  • No new non-sorry warnings in Interaction/ or Data/ subtrees
  • Review sorry obligations in CompPoly and proof-system frontends (tracked, not blocking)
  • Clean up untracked duplicate files (General (1).lean, SingleRound (1).lean)

Posted by Cursor assistant (model: claude-4.6-opus-high-thinking) on behalf of the user (Quang Dao) with approval.

quangvdao and others added 12 commits March 28, 2026 08:10
Advance the CompPoly dependency from v4.28.0 (d7b9f98, 58 commits behind)
to the latest upstream master tip. The bump is fully backward-compatible
with no ArkLib code changes needed.

Made-with: Cursor
Replace ~30 duplicated bivariate polynomial declarations (coeff,
degrees, weighted degrees, eval, shift, root multiplicity, discriminant)
with imports from CompPoly's ToMathlib bridge files. Fix downstream
consumers for monomial name disambiguation and the now-unconditional
weightedDegree_eq_natWeightedDegree.

Net: 597 lines deleted, 47 lines changed across 4 files, zero new sorries.
Made-with: Cursor
Bump VCVio from d37e586 to ebea2fa (12 commits). Remove the
unused Q_ne_0 field from GuruswamiSudan.Conditions since
dvd_property does not require it.

Made-with: Cursor
…sors

- Restore `Q_ne_0` field in `GuruswamiSudan.Conditions`: non-zeroness
  is integral to the decoder specification (Q=0 trivially satisfies the
  algebraic conditions). `dvd_property` still doesn't require it.
- Fix `Conditions` docstring to accurately describe the structure.
- Fix `ne_zero_iff_coeffs_ne_zero` docstring ("all its coefficients" →
  "its coefficient function").
- Add `[NoZeroDivisors F]` to `totalDegree_mul` statement — the theorem
  is false over semirings with zero divisors.

Made-with: Cursor
Resolve isolated dot, long line, and unnecessary simpa warnings.

Made-with: Cursor
New standalone interaction infrastructure built on W-type specs with
role decorations, eliminating the old TwoParty/Multiparty inductives
and ProtocolSpec/Direction wrappers.

- Basic.lean: universe-polymorphic Spec, Transcript, Strategy, Decoration
  with map, BundledMonad, MonadDecoration, append/comp combinators
- TwoParty.lean: Role, RoleDecoration (= Decoration on Spec),
  Strategy.withRoles, Counterpart, runWithRoles, per-node monad variants
- Multiparty.lean: PartyDecoration + toRoles via Decoration.map,
  three-party knowledge-soundness examples with rfl proofs
- Reduction.lean: Prover, Verifier, Reduction, execute parameterized
  by (pSpec : Spec) (roles : RoleDecoration pSpec)
- PORTING.md: tracks core rebuild progress and next steps
- Delete old ArkLib/Refactor/ folder (superseded)

Made-with: Cursor
- Verifier: add StmtOut, rename decide→verify, m Bool→OptionT m StmtOut
- OracleCounterpart: round-by-round challenger with accSpec growing at sender nodes
- InteractiveOracleVerifier: unified challenger+verify (= OracleCounterpart at internal nodes, verify fn at .done)
- OracleVerifier: batch structure with iov + transcript-dependent simulate + reify
- OracleProver, OracleReduction: oracle-aware prover/reduction structures
- Decoration.Refine: displayed decoration combinator (cf. displayed algebras, ornaments)
- SenderDecoration: Refine specialized to RoleDecoration with role-dependent fiber
- Universe polymorphism throughout TwoParty.lean
- N-ary composition: replicate, chain, iterate for Spec/Decoration/Strategy/Transcript

Made-with: Cursor
…tions

Replace SenderDecoration (Decoration.Refine + PUnit junk at receiver nodes)
with Role.Refine — a direct recursion on spec + roles that skips receiver
nodes cleanly. Prove equivalence with Decoration.Refine for compatibility.

Made-with: Cursor
- Add ArkLib/Interaction/Basic/{Spec,Decoration,Strategy,Append,Replicate,Chain,MonadDecoration,BundledMonad}
- Add ArkLib/Interaction/TwoParty/{Role,Decoration,Strategy,Swap,Compose,Refine,Examples}
- Remove monolithic Basic.lean and TwoParty.lean; update Multiparty, Reduction, Oracle imports
- Note Interaction/Basic/ in PORTING.md; add Interaction line to docs/wiki/repo-map.md

Made-with: Cursor
- Define Spec.Decoration.swap so roles.swap elaborates on Decoration (fun _ => Role)
- Abbrev RoleDecoration.swap to Spec.Decoration.swap; use roles.swap in Swap/Compose theorems

Made-with: Cursor
@chatgpt-codex-connector
Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 28, 2026

🤖 Gemini PR Summary

Replaces the legacy flat protocol model with a dependent-type-native Interaction framework based on W-type interaction trees (Spec). This design enables move types in later rounds to depend on values from earlier messages, supporting a range from sequential two-party protocols to concurrent systems with open boundaries.

Core Mathematical Formalization

  • Sequential Interaction: Uses Spec (W-types) for dependent interaction trees. Includes theories for Transcript (paths), Decoration (metadata), and Strategy (monadic participant behaviors). Supports sequential composition via Append, Chain, and StateChain combinators.
  • Multiparty & Roles: Extends core syntax with Role (sender/receiver) and LocalView for partial observability, enabling formalization of broadcast and point-to-point communication.
  • Concurrent Semantics: Introduces a structural concurrency layer with binary parallelism (par), event traces, and scheduler-independent reasoning (diamond lemmas). Includes a dynamic "Process" layer and an "Open Composition" layer using PFunctor-based interfaces (Interface) to bridge independent systems via map, par, wire, and plug.
  • Oracle Framework: Implements path-dependent oracle access (OracleDecoration), allowing available interfaces to grow round-by-round. Supports Interactive Oracle Proofs (IOPs) where queries depend on the transcript.

Proof Systems & Security

  • Sumcheck & FRI: Interaction-native frontends. FRI includes folding and query phases modeled as oracle continuations.
  • Security Framework: Decomposes soundness, completeness, and knowledge soundness via "Claim Trees" for round-by-round analysis. Includes the Fiat-Shamir transform for public-coin protocols.
  • Computable Polynomials (CompPoly): A library for degree-bounded univariate and multivariate polynomials (CDegreeLE, CMvDegreeLE) optimized for evaluation and folding within interaction trees.
  • Boundaries & Reification: Introduces Statement/Witness/Context abstractions for interface adaptation and a reification bridge to link abstract oracle behaviors to concrete data implementations.

Infrastructure & Documentation

  • Blueprint: Adds a new "Interaction Framework" chapter with 7 sections mapping formal definitions to the implementation.
  • CI/Tooling: Implements scripts/check-warning-log.py and updates validate.sh to enforce a zero-warning budget (excluding sorry) for the Interaction/ and Data/ subtrees.
  • Design Docs: Adds specifications for concurrency (INTERACTION_CONCURRENT_SPEC.md), boundaries, and protocol roadmaps.

Critical Technical Details: sorry and admit Placeholders

While the core ArkLib/Interaction/ framework (66 files) is sorry-free, several application-specific modules and lemmas remain incomplete:

  • Sumcheck (ProofSystem/Sumcheck/Interaction/CompPoly.lean): 14 sorry placeholders for lemmas regarding evaluation, degree preservation, and ring homomorphisms.
  • FRI (ProofSystem/Fri/Interaction/Core.lean, RoundConsistency.lean): sorry placeholders for honest fold degree bounds and Lagrange completeness.
  • BCS (ArkLib/Interaction/BCS/Verifier.lean): Phase 2 opening protocol functions (openingSpec, bcsPhase2Verifier) are implemented with sorry. (Note: This module appears in the code changes but was not detailed in the PR body).
  • Polynomial logic (ArkLib/Data/CompPoly/Fold.lean): 3 sorry placeholders for bridge lemmas to Mathlib toPoly.
  • Oracle Security (ArkLib/Interaction/Oracle/Security.lean): The proof that knowledge soundness implies soundness is currently a sorry.
  • Note: The canonical Sumcheck General.lean security proofs use trivial as explicit placeholders for scaffolding.

Statistics

Metric Count
📝 Files Changed 78
Lines Added 25654
Lines Removed 203

Lean Declarations

✏️ **Removed:** 1 declaration(s)
  • def renameMessage (pSpec : ProtocolSpec n) (NewMessage : pSpec.MessageIdx → Type) : in ArkLib/OracleReduction/BCS/Basic.lean
✏️ **Added:** 470 declaration(s)
  • abbrev Verifier (m : Type u → Type u) in ArkLib/Interaction/Reduction.lean
  • theorem Reduction.execute_comp in ArkLib/Interaction/Reduction.lean
  • def advance in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def Counterpart.ofChain {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def chainComp in ArkLib/Interaction/Oracle/Continuation.lean
  • def Reduction.completeness in ArkLib/Interaction/Security.lean
  • theorem knowledgeSoundness_implies_soundness in ArkLib/Interaction/Security.lean
  • theorem soundness_of_rbrSoundness in ArkLib/Interaction/Security.lean
  • def Reduction.freezeSharedToPUnit in ArkLib/Interaction/Oracle/Composition.lean
  • abbrev fullRoles (n : Nat) : RoleDecoration (fullSpec R deg n) in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def wrapWithCommitmentsExt : in ArkLib/Interaction/BCS/HybridSpec.lean
  • theorem appendRight_range : in ArkLib/Interaction/Oracle/Core.lean
  • def stepResidual (chal : R) in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def roundProverStepStateful (m : Type → Type) [Monad m] in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def extractBack {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • abbrev InputLanguage in ArkLib/Interaction/OracleSecurity.lean
  • abbrev OracleProver {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/Oracle/Core.lean
  • def follow {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • theorem completeness_pullback in ArkLib/Interaction/Boundary/Security.lean
  • theorem isKnowledgeSound_implies_isSound in ArkLib/Interaction/Security.lean
  • abbrev foldPhaseOD : in ArkLib/ProofSystem/Fri/Interaction/FoldPhase.lean
  • abbrev FoldCodewordPrefix in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def rbrKnowledgeSoundness in ArkLib/Interaction/Security.lean
  • def OracleCounterpart.mapOutput {ι : Type} {oSpec : OracleSpec.{0, 0} ι} in ArkLib/Interaction/Oracle/Core.lean
  • def totalShift : ℕ in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev FoldChallengePrefix (i : ℕ) : Type in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • theorem realizes_materializeIn in ArkLib/Interaction/Boundary/Reification.lean
  • theorem roundOracleReduction_execute_eq_stateful in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def verifierOutput in ArkLib/Interaction/Oracle/Core.lean
  • def RoundCheckProp {m_dom : ℕ} (D : Fin m_dom → R) (target : RoundClaim R) in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • theorem partialEvalFirst_eval (a : R) (p : CMvPolynomial (n + 1) R) (v : Fin n → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def perfectCompleteness in ArkLib/Interaction/Oracle/Security.lean
  • def accSpecAfter : in ArkLib/Interaction/Oracle/Execution.lean
  • theorem projectPublic_transcriptAppend : in ArkLib/Interaction/Oracle/Spec.lean
  • def Verifier.run {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • abbrev foldRoundChallenge in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def OracleWitness : in ArkLib/Interaction/Oracle/BCS.lean
  • def evalPointVal (i : ℕ) (idx : EvalIdx (n in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def Reduction.stateChainComp {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def toVerifier {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def knowledgeSoundness in ArkLib/Interaction/Security.lean
  • theorem answerSplitLiftAppendQueryAppend_simOracle0 in ArkLib/Interaction/Oracle/Execution.lean
  • def toUnivariate (p : CMvPolynomial 1 R) : CPolynomial R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def honestRoundPoly {m_dom : ℕ} (D : Fin m_dom → R) in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def soundness in ArkLib/Interaction/Security.lean
  • abbrev deserialize in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • abbrev ReifiedInputLanguage in ArkLib/Interaction/OracleReification.lean
  • theorem appendLeft_range : in ArkLib/Interaction/Oracle/Core.lean
  • def run in ArkLib/Interaction/Oracle/Execution.lean
  • def OracleDecoration.QueryHandle : in ArkLib/Interaction/Oracle/Core.lean
  • theorem PublicTranscript.liftAppend_split : in ArkLib/Interaction/Oracle/Spec.lean
  • def nextRoundIdx in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def roundFiberIdx in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev InputRelation in ArkLib/Interaction/Oracle/Security.lean
  • theorem foldNth_natDegree_le_of_le in ArkLib/Data/CompPoly/Fold.lean
  • def pullback in ArkLib/Interaction/Boundary/Reification.lean
  • abbrev finalFoldChallenge in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def toOracleSpec : in ArkLib/Interaction/Oracle/Spec.lean
  • theorem roundPoly_natDegree_le {deg : ℕ} (D : Fin m → R) {k : ℕ} in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def collapseAppendOracleComp in ArkLib/Interaction/Oracle/Execution.lean
  • def spongeReplayOracle in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def prefixShift (i : ℕ) : ℕ in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def buildSpongeReplayOracle : in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • abbrev ReifiedOutputLanguage in ArkLib/Interaction/OracleReification.lean
  • abbrev EmptyOracleFamily : PEmpty → Type in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def liftAcc in ArkLib/Interaction/Oracle/Composition.lean
  • def roles : {n : Nat} → (c : Chain n) → RoleDecoration (toSpec c) in ArkLib/Interaction/Oracle/Continuation.lean
  • def OracleDeco : HybridSpec → Type 1 in ArkLib/Interaction/BCS/HybridSpec.lean
  • def liftOutput in ArkLib/Interaction/Oracle/Core.lean
  • def currentRoundResidual {n prefixLen : Nat} (h : prefixLen < n) in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def QueryHandle.routeLeft : in ArkLib/Interaction/Oracle/Spec.lean
  • def fullSum {n : ℕ} {m_dom : ℕ} (D : Fin m_dom → R) (poly : PolyStmt R deg n) : R in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • theorem simulateQ_map in ArkLib/Interaction/Oracle/Execution.lean
  • def projectInvariant : in ArkLib/Interaction/BCS/HybridSpec.lean
  • def statementResult {m_dom : Nat} (D : Fin m_dom → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def fsWitnessOut in ArkLib/Interaction/FiatShamir/Transform.lean
  • def Decoration.ofChain {S : Type u → Type v} in ArkLib/Interaction/Reduction.lean
  • def queryRoundOD : in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • theorem roundOracleReduction_honestPubliclyEquivalentStateful in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def wrapWithCommitments : in ArkLib/Interaction/Oracle/BCS.lean
  • def plain : in ArkLib/Interaction/BCS/HybridDecoration.lean
  • def openingSpec {m : Type → Type} in ArkLib/Interaction/BCS/Verifier.lean
  • theorem simulates_pullback in ArkLib/Interaction/Boundary/OracleSecurity.lean
  • theorem IsSound.bound_terminalProb in ArkLib/Interaction/Security.lean
  • def Realizes in ArkLib/Interaction/Boundary/Reification.lean
  • def pullbackVerifier in ArkLib/Interaction/Boundary/Oracle.lean
  • def soundness in ArkLib/Interaction/OracleSecurity.lean
  • def retargetMonads in ArkLib/Interaction/Oracle/Composition.lean
  • theorem OracleReduction.HonestExecutionEquivalent.toPublic in ArkLib/Interaction/Oracle/Execution.lean
  • theorem PublicTranscript.split_append : in ArkLib/Interaction/Oracle/Spec.lean
  • abbrev roundPoly (tr : Spec.Transcript (roundSpec R deg)) : in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def toInteractionSpec : Oracle.Spec → Interaction.Spec in ArkLib/Interaction/Oracle/Spec.lean
  • theorem Reduction.completeness_comp in ArkLib/Interaction/Security.lean
  • abbrev PolyStmt (R : Type) [BEq R] [CommSemiring R] [LawfulBEq R] in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def pullbackSimulate in ArkLib/Interaction/Boundary/Oracle.lean
  • abbrev InteractiveOracleVerifier {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/Oracle/Core.lean
  • def routeInputQueries in ArkLib/Interaction/Boundary/Oracle.lean
  • theorem evalSize_pos (i : ℕ) : 0 < evalSize (n in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def OpeningDeco {m : Type → Type} in ArkLib/Interaction/Oracle/BCS.lean
  • def bcsPhase1Prover in ArkLib/Interaction/BCS/Verifier.lean
  • def OutputRealizes in ArkLib/Interaction/OracleSecurity.lean
  • def IsSound {m : Type u → Type u} [Monad m] [HasEvalSPMF m] in ArkLib/Interaction/Security.lean
  • def finalFoldContinuation {SharedIn : Type} {ι : Type} {oSpec : OracleSpec ι} in ArkLib/ProofSystem/Fri/Interaction/FinalFold.lean
  • def bcsSpec : in ArkLib/Interaction/Oracle/BCS.lean
  • theorem simulateQ_ext in ArkLib/Interaction/Oracle/Core.lean
  • abbrev HonestPoly (i : ℕ) in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev foldPhaseRoles : in ArkLib/ProofSystem/Fri/Interaction/FoldPhase.lean
  • abbrev InputLanguage in ArkLib/Interaction/Oracle/Security.lean
  • abbrev OracleStatement {ιₛ : Type v} (OStmt : ιₛ → Type w) in ArkLib/Interaction/Oracle/Core.lean
  • def residualDegreeBound (i : ℕ) : ℕ in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev roundTranscript (n : Nat) in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def outputAtEnd in ArkLib/Interaction/Oracle/Continuation.lean
  • def soundness in ArkLib/Interaction/Oracle/Security.lean
  • def liftAppendLeftContext : in ArkLib/Interaction/Oracle/Core.lean
  • def partialEvalLast (a : R) (p : CMvPolynomial (n + 1) R) : CMvPolynomial n R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def queryRoundSpec : Spec in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • instance instOracleInterfaceCMvDegreeLE : in ArkLib/Data/CompPoly/Basic.lean
  • def splitNth (n : ℕ) [NeZero n] (p : CPolynomial R) : Fin n → CPolynomial R in ArkLib/Data/CompPoly/Fold.lean
  • def roundProverStep (m : Type → Type) [Monad m] in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def OutputRealizes in ArkLib/Interaction/Oracle/Security.lean
  • theorem reifiedKnowledgeSoundness_implies_reifiedSoundness in ArkLib/Interaction/OracleReification.lean
  • def toClaimTree {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • def outputRelationOfRelation in ArkLib/Interaction/OracleReification.lean
  • theorem execute_pullback in ArkLib/Interaction/Boundary/Security.lean
  • def fsRoles (Context : StatementIn → Spec.{u}) in ArkLib/Interaction/FiatShamir/Transform.lean
  • def toMonadDecoration {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/Oracle/Core.lean
  • def runWithOracleCounterpart in ArkLib/Interaction/Oracle/Execution.lean
  • def queryBatchConsistent in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • def roundCheck {m_dom : ℕ} (D : Fin m_dom → R) (target : RoundClaim R) in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def OracleQueryDeco : in ArkLib/Interaction/Oracle/BCS.lean
  • def fsContext (Context : StatementIn → Spec.{u}) in ArkLib/Interaction/FiatShamir/Transform.lean
  • theorem realizes_simOracle0 in ArkLib/Interaction/OracleSecurity.lean
  • abbrev FoldChallenges : Type in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • theorem runWithOracleCounterpart_mapOutputWithRoles in ArkLib/Interaction/Oracle/Execution.lean
  • theorem splitPublicTranscript_appendPublicTranscript (n : Nat) (c : Chain (n + 1)) in ArkLib/Interaction/Oracle/Chain.lean
  • def ofFunction [Monad m] (f : Data → m (CommType × WitnessType)) : in ArkLib/CommitmentScheme/Basic.lean
  • def ofOracleDecoration : in ArkLib/Interaction/BCS/HybridDecoration.lean
  • def evalSize (i : ℕ) : ℕ in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def foldRoundSpec in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev Prover {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/Oracle/Core.lean
  • def finalFoldRoles : RoleDecoration (finalFoldSpec (F in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • theorem sumcheckReduction_soundness in ArkLib/ProofSystem/Sumcheck/Interaction/General.lean
  • def Reduction.toVerifier in ArkLib/Interaction/Oracle/Core.lean
  • def reifiedKnowledgeSoundness in ArkLib/Interaction/OracleReification.lean
  • abbrev FoldCodewordOracleFamily in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def toSpecRoles : (hs : HybridSpec) → RoleDeco hs → RoleDecoration hs.toSpec in ArkLib/Interaction/BCS/HybridSpec.lean
  • abbrev squeezeLen in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def queryRoundContinuation in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • def forgetExecuteWitness in ArkLib/Interaction/Oracle/Execution.lean
  • abbrev OracleCounterpart {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/Oracle/Core.lean
  • def liftAppendRightContext : in ArkLib/Interaction/Oracle/Core.lean
  • theorem liftAppendOracleFamily_append_eq in ArkLib/Interaction/Oracle/Execution.lean
  • abbrev InputOracleFamily in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • theorem toOracleSpec_appendRight : in ArkLib/Interaction/Oracle/Spec.lean
  • def PublicTranscript : Oracle.Spec → Type in ArkLib/Interaction/Oracle/Spec.lean
  • def CommitDeco (m : Type → Type) : Oracle.Spec → Type 1 in ArkLib/Interaction/Oracle/BCS.lean
  • def toOracleSpec : in ArkLib/Interaction/BCS/HybridDecoration.lean
  • def currentResidual {n prefixLen : Nat} (h : prefixLen ≤ n) in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def roundSpec : Spec in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • theorem runWithOracleCounterpart_mapCounterpartOutput in ArkLib/Interaction/Oracle/Execution.lean
  • theorem answerQuery_appendLeft : in ArkLib/Interaction/Oracle/Core.lean
  • theorem simulate_compFlat {ι : Type} {oSpec : OracleSpec ι} in ArkLib/Interaction/Oracle/Continuation.lean
  • theorem simulateQ_compConcrete in ArkLib/Interaction/OracleReification.lean
  • theorem splitNth_toPoly (n : ℕ) [NeZero n] (p : CPolynomial R) (i : Fin n) : in ArkLib/Data/CompPoly/Fold.lean
  • abbrev OutputLanguage in ArkLib/Interaction/Oracle/Security.lean
  • theorem roundProverStep_map_fst in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • theorem perfectCompleteness_pullback in ArkLib/Interaction/Boundary/Security.lean
  • def PublicTranscript.packAppend : in ArkLib/Interaction/Oracle/Spec.lean
  • theorem prefixShift_le_sub_round in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def SimulatesConcrete in ArkLib/Interaction/OracleReification.lean
  • theorem pullbackSimulate_eval in ArkLib/Interaction/Boundary/Oracle.lean
  • def toMonadDecoration {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/Oracle/Spec.lean
  • theorem toUnivariate_eval (p : CMvPolynomial 1 R) (x : R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • abbrev fullOD (n : Nat) : in ArkLib/ProofSystem/Sumcheck/Interaction/General.lean
  • theorem OracleReduction.mapExecuteWitness_eq_execute_mappedOutput in ArkLib/Interaction/Oracle/Execution.lean
  • def partialEvalPrefix : {i k : ℕ} → (Fin i → R) → CMvPolynomial (i + k) R → CMvPolynomial k R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def answerSplitLiftAppendQuery in ArkLib/Interaction/OracleReification.lean
  • theorem rbrKnowledgeSoundness_implies_rbrSoundness in ArkLib/Interaction/Security.lean
  • theorem partialEvalLast_eval (a : R) (p : CMvPolynomial (n + 1) R) (v : Fin n → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def foldRoundRoles in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def OracleDecoration.oracleContextImpl in ArkLib/Interaction/Oracle/Core.lean
  • def transcriptAppend : in ArkLib/Interaction/Oracle/Spec.lean
  • theorem prefixShift_succ (i : Fin (k + 1)) : in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def OracleReduction.stateChainComp {ι : Type} {oSpec : OracleSpec ι} in ArkLib/Interaction/Oracle/StateChain.lean
  • def Realizes in ArkLib/Interaction/OracleSecurity.lean
  • theorem foldNth_toPoly (n : ℕ) [NeZero n] (p : CPolynomial R) (α : R) : in ArkLib/Data/CompPoly/Fold.lean
  • def ofRevealCheck [Monad m] [oi : OracleInterface Data] in ArkLib/CommitmentScheme/Basic.lean
  • def mapExecuteWitness in ArkLib/Interaction/Oracle/Execution.lean
  • def Strategy.ofChain {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def Reduction.comp {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def Accepts in ArkLib/Interaction/OracleSecurity.lean
  • def projectShared {m : Type → Type} : in ArkLib/Interaction/BCS/HybridSpec.lean
  • def toSpec : {n : Nat} → Chain n → Spec in ArkLib/Interaction/Oracle/Continuation.lean
  • instance of interpreter lifting (cf. Xia et al., *Interaction Trees*): the inner in ArkLib/Interaction/Boundary/Oracle.lean
  • def Prover.duplexSpongeFiatShamir in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def finalFoldOD : in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev PublicCoinVerifier (m : Type u → Type u) in ArkLib/Interaction/Reduction.lean
  • theorem Spec.runWithOracleCounterpart_mapOutputWithRoles in ArkLib/Interaction/Oracle/Execution.lean
  • def pullback in ArkLib/Interaction/Boundary/Oracle.lean
  • abbrev OutputRelation in ArkLib/Interaction/OracleSecurity.lean
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def inputRelationOfReifiedRelation in ArkLib/Interaction/OracleReification.lean
  • def foldRoundContinuation {SharedIn : Type} {ι : Type} {oSpec : OracleSpec ι} in ArkLib/ProofSystem/Fri/Interaction/FoldRound.lean
  • instance instOracleInterfaceCDegreeLE [Semiring R] : in ArkLib/Data/CompPoly/Basic.lean
  • theorem toSpec_succ {n : Nat} (spec : Oracle.Spec) in ArkLib/Interaction/Oracle/Chain.lean
  • theorem OracleReduction.executePublic_eq_map_execute in ArkLib/Interaction/Oracle/Execution.lean
  • def Terminal {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • def answerSplitLiftAppendQueryAppend in ArkLib/Interaction/Oracle/Execution.lean
  • abbrev fullSpec (n : Nat) : Spec in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • theorem toUnivariate_natDegree_le {deg : ℕ} in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def Reduction.execute {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def QueryHandle.appendLeft : in ArkLib/Interaction/Oracle/Spec.lean
  • abbrev InputWitness : Type in ArkLib/ProofSystem/Fri/Interaction/Protocol.lean
  • abbrev ReifiedInputRelation in ArkLib/Interaction/OracleReification.lean
  • theorem toInteractionSpec_append : in ArkLib/Interaction/Oracle/Spec.lean
  • def CDegreeLE (R : Type) [BEq R] [Semiring R] [LawfulBEq R] (d : ℕ) in ArkLib/Data/CompPoly/Basic.lean
  • def RoleDeco.append : in ArkLib/Interaction/Oracle/Spec.lean
  • def append : (s₁ : Oracle.Spec) → (PublicTranscript s₁ → Oracle.Spec) → Oracle.Spec in ArkLib/Interaction/Oracle/Spec.lean
  • theorem simulateQ_liftAppendLeftContext_eq in ArkLib/Interaction/Oracle/Core.lean
  • abbrev IsComplete in ArkLib/Interaction/Boundary/Compatibility.lean
  • def completeness in ArkLib/Interaction/OracleSecurity.lean
  • def toOracleDeco : (n : Nat) → (c : Chain n) → OracleDeco (toSpec n c) in ArkLib/Interaction/Oracle/Chain.lean
  • abbrev challenge {X : Type u} {rest : X → Spec} {rRest : ∀ x, RoleDecoration (rest x)} in ArkLib/Interaction/FiatShamir/Basic.lean
  • def PublicTranscript.liftAppend : in ArkLib/Interaction/Oracle/Spec.lean
  • def executeConcrete in ArkLib/Interaction/Oracle/Execution.lean
  • def bcsPhase2Verifier in ArkLib/Interaction/BCS/Verifier.lean
  • def QueryHandle.splitAppend : in ArkLib/Interaction/Oracle/Spec.lean
  • theorem extractBack_follow : {spec : Spec} → {roles : RoleDecoration spec} → {Claim : Type u} → in ArkLib/Interaction/Security.lean
  • abbrev Output in ArkLib/Interaction/OracleReification.lean
  • def knowledgeSoundness in ArkLib/Interaction/Oracle/Security.lean
  • def bcsPhase1Verifier in ArkLib/Interaction/BCS/Verifier.lean
  • def queryBatchConsistentQ in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • theorem pullbackSimulate_materialize in ArkLib/Interaction/Boundary/Reification.lean
  • def CommitDeco (m : Type → Type) : HybridSpec → Type 1 in ArkLib/Interaction/BCS/HybridSpec.lean
  • instance instOracleInterfaceCMvPolynomial : in ArkLib/Data/CompPoly/Basic.lean
  • theorem roundProverStep_map_honestProverOutputWitness in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • theorem partialEvalFirst_individualDegreeLE {deg : ℕ} (a : R) in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • abbrev stmt {StatementOut : Type u} {WitnessOut : Type v} in ArkLib/Interaction/Reduction.lean
  • def sumAllButFirst (D : Fin m → R) : (k : ℕ) → CMvPolynomial (k + 1) R → CMvPolynomial 1 R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • theorem Reduction.perfectCompleteness_comp in ArkLib/Interaction/Security.lean
  • def IsKnowledgeSound {m : Type u → Type u} [Monad m] [HasEvalSPMF m] in ArkLib/Interaction/Security.lean
  • def bcsSpec : in ArkLib/Interaction/BCS/HybridSpec.lean
  • theorem simulateQ_cast_spec in ArkLib/Interaction/Oracle/Core.lean
  • abbrev PolyFamily (R : Type) [BEq R] [CommSemiring R] [LawfulBEq R] in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def bcsPhase1Prover in ArkLib/Interaction/Oracle/BCS.lean
  • def bcsRoles : in ArkLib/Interaction/BCS/HybridSpec.lean
  • def honestCodeword (i : ℕ) (p : HonestPoly (F in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def Reduction.executeConcrete in ArkLib/Interaction/Oracle/Execution.lean
  • def projectPublic : in ArkLib/Interaction/Oracle/Spec.lean
  • def bcsPhase2 in ArkLib/Interaction/Oracle/BCS.lean
  • theorem sumOverLast_eval (D : Fin m → R) (p : CMvPolynomial (n + 1) R) (v : Fin n → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • theorem roundProverStepStateful_fromResidual in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • abbrev EvalIdx (i : ℕ) in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def bcsHybridDeco : in ArkLib/Interaction/BCS/Verifier.lean
  • abbrev ReifiedOutputRelation in ArkLib/Interaction/OracleReification.lean
  • def RoleDeco : Oracle.Spec → Type in ArkLib/Interaction/Oracle/Spec.lean
  • def maxPathError {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • def reifiedSoundness in ArkLib/Interaction/OracleReification.lean
  • def Reduction.ofChain in ArkLib/Interaction/Oracle/Chain.lean
  • def toSpec : HybridSpec → Spec in ArkLib/Interaction/BCS/HybridSpec.lean
  • def PublicCoinVerifier.fiatShamir in ArkLib/Interaction/FiatShamir/Transform.lean
  • def foldRoundOD in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • theorem PublicTranscript.liftAppend_append : in ArkLib/Interaction/Oracle/Spec.lean
  • theorem roundContinuation_publicEq_stateful in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • abbrev HonestProverOutput (StatementOut : Type u) (WitnessOut : Type v) in ArkLib/Interaction/Reduction.lean
  • def answerQuery : in ArkLib/Interaction/BCS/HybridDecoration.lean
  • def RoleDeco : HybridSpec → Type in ArkLib/Interaction/BCS/HybridSpec.lean
  • theorem honestFoldPoly_natDegree_le {i : Fin k} in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def bcsPhase1Verifier in ArkLib/Interaction/Oracle/BCS.lean
  • abbrev InputStatement : Type in ArkLib/ProofSystem/Fri/Interaction/Protocol.lean
  • def HonestPubliclyEquivalent in ArkLib/Interaction/Oracle/Execution.lean
  • def outputFamily in ArkLib/Interaction/Oracle/Continuation.lean
  • def bcsProjectShared : in ArkLib/Interaction/BCS/HybridSpec.lean
  • constant by OracleDecoration (oracle messages don't branch). We pick the in ArkLib/Interaction/Oracle/Bridge.lean
  • def bcsProjectShared : in ArkLib/Interaction/Oracle/BCS.lean
  • def restrictRight {r : Type → Type} [Monad r] : in ArkLib/Interaction/Oracle/Spec.lean
  • def QueryHandle : in ArkLib/Interaction/Oracle/Spec.lean
  • theorem PublicTranscript.append_split : in ArkLib/Interaction/Oracle/Spec.lean
  • def foldNth (n : ℕ) [NeZero n] (p : CPolynomial R) (α : R) : in ArkLib/Data/CompPoly/Fold.lean
  • def honestFinalPolynomial in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def QueryHandle.routeRight : in ArkLib/Interaction/Oracle/Spec.lean
  • def pullbackShared in ArkLib/Interaction/Oracle/Continuation.lean
  • def OracleDecoration.toOracleSpec : in ArkLib/Interaction/Oracle/Core.lean
  • def routeInputQueriesInnerEval in ArkLib/Interaction/Boundary/Oracle.lean
  • abbrev OracleDecoration (spec : Spec) (roles : RoleDecoration spec) in ArkLib/Interaction/Oracle/Core.lean
  • def queryRoundRoles : RoleDecoration (queryRoundSpec (n in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • def SharedTranscript {m : Type → Type} : in ArkLib/Interaction/BCS/HybridSpec.lean
  • def toSpecRoles : (s : Oracle.Spec) → RoleDeco s → RoleDecoration s.toInteractionSpec in ArkLib/Interaction/Oracle/Spec.lean
  • theorem roundPoly_eval (D : Fin m → R) (k : ℕ) (p : CMvPolynomial (k + 1) R) (x : R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • abbrev InputImpl in ArkLib/Interaction/Oracle/Security.lean
  • def terminalGood {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • theorem simulateQ_add_liftComp_left in ArkLib/Interaction/Boundary/Oracle.lean
  • abbrev ReplayOracle (spec : Spec.{u}) (roles : RoleDecoration spec) : Type u in ArkLib/Interaction/FiatShamir/Basic.lean
  • theorem rbrKnowledgeSoundness_implies_knowledgeSoundness in ArkLib/Interaction/Security.lean
  • abbrev QueryResult : Type in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • theorem simulateQ_compose in ArkLib/Interaction/Boundary/Oracle.lean
  • theorem answerQuery_appendRight : in ArkLib/Interaction/Oracle/Core.lean
  • def bcsOracleDeco : in ArkLib/Interaction/Oracle/BCS.lean
  • def Chain : Nat → Type 1 in ArkLib/Interaction/Oracle/Chain.lean
  • def outputFamily in ArkLib/Interaction/Oracle/Chain.lean
  • def liftAppendRightQuery : in ArkLib/Interaction/Oracle/Core.lean
  • def sumOverLast (D : Fin m → R) (p : CMvPolynomial (n + 1) R) : CMvPolynomial n R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • instance instOracleInterfaceEmptyOracleFamily : in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def evalAtIdx (p : CPolynomial F) {i : ℕ} (idx : EvalIdx (n in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def openingRoles {m : Type → Type} in ArkLib/Interaction/BCS/Verifier.lean
  • def partialEvalFirst (a : R) (p : CMvPolynomial (n + 1) R) : CMvPolynomial n R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def splitLiftAppendOracleQuery in ArkLib/Interaction/Oracle/Execution.lean
  • abbrev afterMessage in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def fsStatementOut in ArkLib/Interaction/FiatShamir/Transform.lean
  • theorem realizes_materializeOut in ArkLib/Interaction/Boundary/Reification.lean
  • def PublicTranscript.append : in ArkLib/Interaction/Oracle/Spec.lean
  • def honestFoldPoly {i : Fin k} in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev InputImpl in ArkLib/Interaction/OracleSecurity.lean
  • abbrev OutputImpl in ArkLib/Interaction/OracleSecurity.lean
  • theorem simulateQ_liftId in ArkLib/Interaction/Boundary/Oracle.lean
  • def bcsPhase2Prover in ArkLib/Interaction/BCS/Verifier.lean
  • abbrev Codeword (_s : Fin (k + 1) → ℕ+) (_n : ℕ) (i : ℕ) : Type in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def inputLanguageOfReifiedLanguage in ArkLib/Interaction/OracleReification.lean
  • def initialCodewords (codeword : Codeword (F in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def roundAnchorIdx in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def PublicTranscript.split : in ArkLib/Interaction/Oracle/Spec.lean
  • def runConcrete in ArkLib/Interaction/Oracle/Execution.lean
  • def MessagesOnly : in ArkLib/Interaction/FiatShamir/Basic.lean
  • def toVerifier in ArkLib/Interaction/Oracle/Core.lean
  • def execute in ArkLib/Interaction/Oracle/Continuation.lean
  • abbrev liftAppendOracleIdx in ArkLib/Interaction/Oracle/Execution.lean
  • abbrev wit {StatementOut : Type u} {WitnessOut : Type v} in ArkLib/Interaction/Reduction.lean
  • def challengePrefix (n : Nat) (tr : Spec.Transcript (fullSpec R deg n)) : in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • abbrev FSStatement (StatementIn : Type u) (Context : StatementIn → Spec.{u}) in ArkLib/Interaction/FiatShamir/Transform.lean
  • def accImplAfter : in ArkLib/Interaction/Oracle/Execution.lean
  • def PublicTranscript.unliftAppend : in ArkLib/Interaction/Oracle/Spec.lean
  • def od : {n : Nat} → (c : Chain n) → OracleDecoration (toSpec c) (roles c) in ArkLib/Interaction/Oracle/Continuation.lean
  • def QueryHandle.appendRight : in ArkLib/Interaction/Oracle/Spec.lean
  • def PublicCoinReduction.duplexSpongeFiatShamir in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def roundOracleDecoration : in ArkLib/ProofSystem/Sumcheck/Interaction/Oracle.lean
  • abbrev serialize in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def appendPublicTranscript (n : Nat) (c : Chain (n + 1)) in ArkLib/Interaction/Oracle/Chain.lean
  • def appendRight : in ArkLib/Interaction/Oracle/Core.lean
  • abbrev roundChallenge (tr : Spec.Transcript (roundSpec R deg)) : in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def SharedTranscript {m : Type → Type} : in ArkLib/Interaction/Oracle/BCS.lean
  • def remainingShift (i : ℕ) : ℕ in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • abbrev afterMessage {X : Type u} {rest : X → Spec} {rRest : ∀ x, RoleDecoration (rest x)} in ArkLib/Interaction/FiatShamir/Basic.lean
  • def roundRoles : RoleDecoration (roundSpec R deg) in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • def OracleDeco : Oracle.Spec → Type 1 in ArkLib/Interaction/Oracle/Spec.lean
  • theorem IsKnowledgeSound.good_extractBack in ArkLib/Interaction/Security.lean
  • def pullback {m : Type _ → Type _} [Monad m] [Functor m] in ArkLib/Interaction/Boundary/Core.lean
  • def id in ArkLib/Interaction/Oracle/Continuation.lean
  • def restrictLeft {r : Type → Type} [Monad r] : in ArkLib/Interaction/Oracle/Spec.lean
  • abbrev finalFoldPolynomial in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def comp in ArkLib/Interaction/Oracle/Chain.lean
  • def inputRelationOfRelation in ArkLib/Interaction/OracleReification.lean
  • def routeInputQueriesOuterEval in ArkLib/Interaction/Boundary/Oracle.lean
  • def Reduction.pullbackShared in ArkLib/Interaction/Oracle/Composition.lean
  • theorem routeInnerOutputQueries_eval in ArkLib/Interaction/Boundary/Oracle.lean
  • abbrev QueryBatch : Type in ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean
  • abbrev roles in ArkLib/Interaction/Reduction.lean
  • abbrev VerifierOutput in ArkLib/Interaction/Oracle/Core.lean
  • def IndividualDegreeLE (deg : ℕ) (p : CMvPolynomial n R) : Prop in ArkLib/Data/CompPoly/Basic.lean
  • theorem simulateQ_liftAppendRightContext_eq in ArkLib/Interaction/Oracle/Core.lean
  • def Reduction.id in ArkLib/Interaction/Oracle/Composition.lean
  • def Reduction.comp in ArkLib/Interaction/Oracle/Composition.lean
  • def randomChallenger (sample : (T : Type) → ProbComp T) : in ArkLib/Interaction/Security.lean
  • theorem simulateQ_add_liftComp_right in ArkLib/Interaction/Boundary/Oracle.lean
  • abbrev foldPhaseContext : Spec in ArkLib/ProofSystem/Fri/Interaction/FoldPhase.lean
  • def PublicCoinVerifier.duplexSpongeFiatShamir in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • theorem simulateQ_cast in ArkLib/Interaction/Oracle/Core.lean
  • def toMonadDecoration {ι : Type} (oSpec : OracleSpec.{0, 0} ι) in ArkLib/Interaction/BCS/HybridReduction.lean
  • def reifiedCompleteness in ArkLib/Interaction/OracleReification.lean
  • def SpongeAnnotation (U : Type) : in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def Reduction.ofChain {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • def finalFoldSpec : Spec in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def run in ArkLib/Interaction/Oracle/Continuation.lean
  • def foldPhaseContinuation {ι : Type} {oSpec : OracleSpec ι} in ArkLib/ProofSystem/Fri/Interaction/FoldPhase.lean
  • def outputRelationOfReifiedRelation in ArkLib/Interaction/OracleReification.lean
  • def answerSplitLiftAppendQuery in ArkLib/Interaction/Oracle/Execution.lean
  • def appendLeft : in ArkLib/Interaction/Oracle/Core.lean
  • abbrev HybridDecoration (spec : Spec) (roles : RoleDecoration spec) in ArkLib/Interaction/BCS/HybridDecoration.lean
  • theorem routeInnerOutputQueries_materialize in ArkLib/Interaction/Boundary/Reification.lean
  • def completeness in ArkLib/Interaction/Oracle/Security.lean
  • theorem liftM_cast_query_add_right in ArkLib/Interaction/Oracle/Core.lean
  • abbrev Prover (m : Type u → Type u) in ArkLib/Interaction/Reduction.lean
  • def promoteStatementToShared in ArkLib/Interaction/Oracle/Continuation.lean
  • def perfectCompleteness in ArkLib/Interaction/OracleSecurity.lean
  • def output in ArkLib/Interaction/OracleReification.lean
  • theorem simulate_comp {ι : Type} {oSpec : OracleSpec ι} in ArkLib/Interaction/Oracle/Continuation.lean
  • theorem roundContinuationOption_proverEq_stateful in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • abbrev OutputLanguage in ArkLib/Interaction/OracleSecurity.lean
  • def honestRoundPolyAtPrefix {m_dom : ℕ} (D : Fin m_dom → R) in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def answerQuery : in ArkLib/Interaction/Oracle/Spec.lean
  • def toReduction {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • theorem roundOracleReduction_executePublic_eq_stateful in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def bcsRoleDeco : in ArkLib/Interaction/Oracle/BCS.lean
  • def outputLanguageOfReifiedLanguage in ArkLib/Interaction/OracleReification.lean
  • def Prover.fiatShamir in ArkLib/Interaction/FiatShamir/Transform.lean
  • def toRoles : (n : Nat) → (c : Chain n) → RoleDeco (toSpec n c) in ArkLib/Interaction/Oracle/Chain.lean
  • theorem evalSize_factor in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def InvariantTranscript : HybridSpec → Type in ArkLib/Interaction/BCS/HybridSpec.lean
  • theorem routeInputQueries_eval in ArkLib/Interaction/Boundary/Oracle.lean
  • theorem simulateQ_cast_dep in ArkLib/Interaction/Oracle/Core.lean
  • def reifiedPerfectCompleteness in ArkLib/Interaction/OracleReification.lean
  • theorem simulateQ_cast_query in ArkLib/Interaction/Oracle/Core.lean
  • def Verifier.run in ArkLib/Interaction/Oracle/Execution.lean
  • theorem IsKnowledgeSound.bound_terminalProb in ArkLib/Interaction/Security.lean
  • theorem soundness_comp in ArkLib/Interaction/Security.lean
  • abbrev afterChallenge in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • theorem probAccept_pullback_le in ArkLib/Interaction/Boundary/Security.lean
  • theorem roundOracleReduction_honestExecutionEquivalentStateful in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • theorem simulateQ_collapseAppendOracleComp in ArkLib/Interaction/Oracle/Execution.lean
  • abbrev verifierMD in ArkLib/Interaction/Oracle/Core.lean
  • def OracleQueryDeco : in ArkLib/Interaction/BCS/Verifier.lean
  • def replay {m : Type u → Type u} [Monad m] in ArkLib/Interaction/Reduction.lean
  • abbrev Proof (m : Type u → Type u) in ArkLib/Interaction/Reduction.lean
  • def splitPublicTranscript (n : Nat) (c : Chain (n + 1)) : in ArkLib/Interaction/Oracle/Chain.lean
  • def routeInnerOutputQueries in ArkLib/Interaction/Boundary/Oracle.lean
  • def evalPoint (i : ℕ) (idx : EvalIdx (n in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def compAux in ArkLib/Interaction/Oracle/Composition.lean
  • def comp {ι : Type} {oSpec : OracleSpec ι} in ArkLib/Interaction/Oracle/Continuation.lean
  • theorem roundProverStep_map_residualWitness in ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean
  • def toFSStatement in ArkLib/Interaction/FiatShamir/DuplexSponge.lean
  • def OracleWitness : in ArkLib/Interaction/BCS/HybridSpec.lean
  • def rbrSoundness in ArkLib/Interaction/Security.lean
  • abbrev afterChallenge {X : Type u} {rest : X → Spec} {rRest : ∀ x, RoleDecoration (rest x)} in ArkLib/Interaction/FiatShamir/Basic.lean
  • def roundPoly (D : Fin m → R) (k : ℕ) (p : CMvPolynomial (k + 1) R) : CPolynomial R in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • abbrev liftAppendOracleFamily in ArkLib/Interaction/Oracle/Execution.lean
  • def OracleResponseDeco : in ArkLib/Interaction/Oracle/BCS.lean
  • def Reduction.perfectCompleteness in ArkLib/Interaction/Security.lean
  • def OracleContext.toOracleStatement in ArkLib/Interaction/Boundary/Reification.lean
  • theorem toOracleSpec_appendLeft : in ArkLib/Interaction/Oracle/Spec.lean
  • def Spec.runWithOracleCounterpart in ArkLib/Interaction/Oracle/Execution.lean
  • theorem honestFinalPolynomial_natDegree_le in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • theorem sumAllButFirst_eval (D : Fin m → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean
  • def OracleDecoration.answerQuery : in ArkLib/Interaction/Oracle/Core.lean
  • def HonestExecutionEquivalent in ArkLib/Interaction/Oracle/Execution.lean
  • instance instOracleInterfaceCPolynomial [Nontrivial R] : in ArkLib/Data/CompPoly/Basic.lean
  • def toSpec : (n : Nat) → Chain n → Oracle.Spec in ArkLib/Interaction/Oracle/Chain.lean
  • def answerCommittedQueries : in ArkLib/Interaction/Oracle/BCS.lean
  • abbrev InputRelation in ArkLib/Interaction/OracleSecurity.lean
  • def knowledgeSoundness in ArkLib/Interaction/OracleSecurity.lean
  • def pullbackCounterpart in ArkLib/Interaction/Boundary/Oracle.lean
  • theorem runWithOracleCounterpart_pullbackCounterpart_raw in ArkLib/Interaction/Boundary/Oracle.lean
  • theorem answerSplitLiftAppendQueryAppend_eq in ArkLib/Interaction/Oracle/Execution.lean
  • def executePublicConcrete in ArkLib/Interaction/Oracle/Execution.lean
  • def freezeSharedToPUnit in ArkLib/Interaction/Oracle/Continuation.lean
  • abbrev IsSound in ArkLib/Interaction/Boundary/Compatibility.lean
  • abbrev FinalStatement : Type in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def Strategy.runWithReplayOracle {m : Type u → Type u} [Monad m] : in ArkLib/Interaction/FiatShamir/Transform.lean
  • def wrapWithCommitmentsExt : in ArkLib/Interaction/Oracle/BCS.lean
  • theorem splitLiftAppendOracleRange_eq in ArkLib/Interaction/Oracle/Execution.lean
  • def CMvDegreeLE in ArkLib/Data/CompPoly/Basic.lean
  • def projectShared {m : Type → Type} : in ArkLib/Interaction/Oracle/BCS.lean
  • def good {spec : Spec} {roles : RoleDecoration spec} {Claim : Type u} in ArkLib/Interaction/Security.lean
  • theorem sumcheckReduction_completeness in ArkLib/ProofSystem/Sumcheck/Interaction/General.lean
  • def OracleResponseDeco : in ArkLib/Interaction/BCS/Verifier.lean
  • theorem run_pullback in ArkLib/Interaction/Boundary/Security.lean
  • def initialChallenges : FoldChallengePrefix (F in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def liftAppendLeftQuery : in ArkLib/Interaction/Oracle/Core.lean
  • abbrev RoundClaim in ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean
  • abbrev OutputImpl in ArkLib/Interaction/Oracle/Security.lean
  • def OpeningDeco (m : Type → Type) : in ArkLib/Interaction/BCS/Verifier.lean
  • theorem runWithOracleCounterpart_pullbackCounterpart in ArkLib/Interaction/Boundary/Oracle.lean
  • def roundArity (i : Fin (k + 1)) : ℕ in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def OracleDeco.append : in ArkLib/Interaction/Oracle/Spec.lean
  • def deriveTranscript : in ArkLib/Interaction/FiatShamir/Basic.lean
  • theorem toMonadDecoration_append in ArkLib/Interaction/Oracle/Execution.lean
  • def wrapWithCommitments : in ArkLib/Interaction/BCS/HybridSpec.lean
  • def PublicCoinReduction.fiatShamir in ArkLib/Interaction/FiatShamir/Transform.lean
  • abbrev OutputRelation in ArkLib/Interaction/Oracle/Security.lean
  • theorem knowledgeSoundness_implies_soundness in ArkLib/Interaction/Oracle/Security.lean
  • abbrev foldRoundCodeword in ArkLib/ProofSystem/Fri/Interaction/Core.lean
  • def QueryHandle : in ArkLib/Interaction/BCS/HybridDecoration.lean

sorry Tracking

❌ **Added:** 25 `sorry`(s)
  • def bcsProjectShared : in ArkLib/Interaction/BCS/HybridSpec.lean (L214)
  • theorem sumOverLast_eval (D : Fin m → R) (p : CMvPolynomial (n + 1) R) (v : Fin n → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L116)
  • def bcsPhase2Verifier in ArkLib/Interaction/BCS/Verifier.lean (L282)
  • def openingSpec {m : Type → Type} in ArkLib/Interaction/BCS/Verifier.lean (L248)
  • theorem honestFinalPolynomial_natDegree_le in ArkLib/ProofSystem/Fri/Interaction/Core.lean (L322)
  • theorem sumAllButFirst_eval (D : Fin m → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L125)
  • def bcsPhase2Prover in ArkLib/Interaction/BCS/Verifier.lean (L270)
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L144)
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L149)
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L170)
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L171)
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L172)
  • theorem partialEvalPrefix_individualDegreeLE {deg : ℕ} : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L173)
  • theorem toUnivariate_eval (p : CMvPolynomial 1 R) (x : R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L194)
  • theorem foldNth_natDegree_le_of_le in ArkLib/Data/CompPoly/Fold.lean (L59)
  • theorem partialEvalFirst_individualDegreeLE {deg : ℕ} (a : R) in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L136)
  • theorem partialEvalLast_eval (a : R) (p : CMvPolynomial (n + 1) R) (v : Fin n → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L109)
  • theorem toUnivariate_natDegree_le {deg : ℕ} in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L213)
  • theorem roundPoly_natDegree_le {deg : ℕ} (D : Fin m → R) {k : ℕ} in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L221)
  • theorem honestFoldPoly_natDegree_le {i : Fin k} in ArkLib/ProofSystem/Fri/Interaction/Core.lean (L306)
  • theorem knowledgeSoundness_implies_soundness in ArkLib/Interaction/Oracle/Security.lean (L542)
  • theorem foldNth_toPoly (n : ℕ) [NeZero n] (p : CPolynomial R) (α : R) : in ArkLib/Data/CompPoly/Fold.lean (L53)
  • theorem partialEvalFirst_eval (a : R) (p : CMvPolynomial (n + 1) R) (v : Fin n → R) : in ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean (L102)
  • theorem splitNth_toPoly (n : ℕ) [NeZero n] (p : CPolynomial R) (i : Fin n) : in ArkLib/Data/CompPoly/Fold.lean (L49)
  • def openingRoles {m : Type → Type} in ArkLib/Interaction/BCS/Verifier.lean (L256)

🎨 **Style Guide Adherence**

The following violations of the style guide were identified:

Line Length (> 20 violations)

  • Rule: "Keep lines under 100 characters."
  • Examples:
    • ArkLib/Interaction/BCS/HybridReduction.lean:87: (OStatementOut : (shared : SharedIn) → (tr : Spec.Transcript (Context shared)) → ιₛₒ shared tr → Type) (108 characters)
    • ArkLib/Interaction/Oracle/Continuation.lean:621: (OStatementOut : (shared : SharedIn) → (tr : Spec.Transcript (ctx₁ shared)) → (tr₂ : Spec.Transcript (ctx₂ shared tr₁)) → ιₛₒ shared tr₁ tr₂ → Type) (134 characters)
    • ArkLib/Interaction/Oracle/Execution.lean:180: (qOut : ([liftAppendOracleFamily spec₁ spec₂ ιₛ OStmt (Spec.Transcript.append spec₁ spec₂ tr₁ tr₂)]ₒ).Domain) → (110 characters)

Naming Conventions - Acronyms (> 20 violations)

  • Rule: "Acronyms: Treat as words (e.g., HtmlParser not HTMLParser)."
  • Examples:
    • ArkLib/Data/CompPoly/Basic.lean:33: CDegreeLE should be CDegreeLe.
    • ArkLib/Data/CompPoly/Basic.lean:51: toOC should be toOc.
    • ArkLib/Interaction/BCS/HybridReduction.lean:38: Namespace BCS should be Bcs.
    • ArkLib/Interaction/Oracle/Core.lean:45: OStmt should be Ostmt.

Variable Conventions (> 20 violations)

  • Rule: "α, β, γ, ... : Generic types", "u, v, w, ... : Universes".
  • Examples:
    • ArkLib/Data/CompPoly/Basic.lean:25: R used for a Type; should use α or similar generic type variable.
    • ArkLib/Interaction/BCS/HybridSpec.lean:69: X used for a Type; should use α.
    • ArkLib/Interaction/BCS/HybridReduction.lean:44: ι used for a Type; should use α.
    • ArkLib/Interaction/BCS/HybridReduction.lean:32: u, v, w used as universe variables; this is correct, but many other files use ι for types.

Syntax and Formatting - File Headers

  • Rule: "Use standard file headers including copyright, license (Apache 2.0), and authors."
  • The following files are missing the standard file header:
    • ArkLib/Interaction/Boundary/Compatibility.lean
    • ArkLib/Interaction/Boundary/Core.lean
    • ArkLib/Interaction/Boundary/Oracle.lean
    • ArkLib/Interaction/Boundary/OracleSecurity.lean
    • ArkLib/Interaction/Boundary/Reification.lean
    • ArkLib/Interaction/Boundary/Security.lean
    • ArkLib/Interaction/OracleReification.lean
    • ArkLib/Interaction/OracleSecurity.lean

Syntax and Formatting - Indentation

  • Rule: "Indentation: Use 2 spaces for indentation."
  • ArkLib/Data/CompPoly/Basic.lean:50: Query := Fin n → R (3-space indentation).
  • ArkLib/Data/CompPoly/Basic.lean:57: Query := R (3-space indentation).
  • ArkLib/Data/CompPoly/Basic.lean:64: Query := R (3-space indentation).
  • ArkLib/Data/CompPoly/Basic.lean:71: Query := Fin n → R (3-space indentation).

Documentation Standards - Docstring Quality

  • Rule: "Docstrings must describe what a definition is or what a theorem states... references to... reactive language (e.g., 'renamed from X', 'replaces the old Y') are prohibited."
  • ArkLib/CommitmentScheme/Basic.lean:25: "...and will eventually supersede the legacy versions." (Uses reactive language/describes future change history).

📄 **Per-File Summaries**
  • AGENTS.md: This update refines the project's guardrails by introducing stylistic preferences for readable notation, term-style definitions, and the use of existing library combinators over bespoke helpers. It also clarifies global configuration settings for autoImplicit and establishes stricter quality and maintenance standards for docstrings and wiki documentation.
  • ArkLib.lean: This update expands the library's top-level exports by importing several new modules focused on interactive protocols, oracle boundaries, and security reductions. Specifically, it integrates new infrastructure for Fiat-Shamir transforms and BCS-related protocols, alongside interactive implementations of the FRI and Sumcheck proof systems.
  • ArkLib/CommitmentScheme/Basic.lean: Introduces a new modular framework for commitment schemes under the Interaction namespace, adding definitions for Commit, Opening, and CommitmentScheme structures. These interaction-based versions are designed to eventually supersede legacy definitions and include constructor functions like ofFunction and ofRevealCheck to build protocols from standard functions. No sorry or admit placeholders were added.
  • ArkLib/Data/CompPoly/Basic.lean: This file introduces definitions for degree-bounded univariate and multivariate computable polynomials, including a predicate for individual variable degrees. It also provides several OracleInterface instances to enable evaluation queries on these polynomial types within the library's oracle framework.
  • ArkLib/Data/CompPoly/Fold.lean: This new file introduces native computable splitNth and foldNth operations for CPolynomial to support FRI protocols without routing through Mathlib polynomials. It includes theorems relating these definitions to standard polynomial operations and degree bounds, though splitNth_toPoly, foldNth_toPoly, and foldNth_natDegree_le_of_le currently contain sorry placeholders.
  • ArkLib/Interaction/BCS/HybridDecoration.lean: This file introduces HybridDecoration, a structure that assigns optional OracleInterface metadata to sender nodes within a protocol transcript. It provides the core definitions for managing oracle queries along transcript paths—including QueryHandle, toOracleSpec, and answerQuery—allowing for the selective commitment of oracle messages in the BCS transform without any sorry placeholders.
  • ArkLib/Interaction/BCS/HybridReduction.lean: This file introduces the HybridOracleReduction structure and the toMonadDecoration function to support protocols where only select sender nodes carry oracle interfaces. These definitions generalize standard oracle reductions to facilitate the BCS transformation, and the file contains no sorry or admit placeholders.
  • ArkLib/Interaction/BCS/HybridSpec.lean: This file introduces the HybridSpec inductive type, which distinguishes between protocol messages that affect control flow and those that are structurally constant, facilitating selective (partial) BCS transformations. It provides definitions for transformed protocol specifications and transcripts, along with functions like wrapWithCommitments to convert prover strategies without using non-computable axioms or sorry placeholders.
  • ArkLib/Interaction/BCS/Verifier.lean: This file introduces the infrastructure for decomposing a BCS (Babai-Costello-Silvio) verifier into three components—challenger, query function, and decision function—to formalize the "public query" property within a hybrid oracle model. It defines key structures for query/response decorations and opening protocols, including the PublicQueryVerifier and OpeningDeco definitions. Several functions related to the Phase 2 opening protocol, such as openingSpec and bcsPhase2Verifier, are currently implemented with sorry placeholders.
  • ArkLib/Interaction/Boundary/Compatibility.lean: This new file introduces formal definitions and structures to define soundness and completeness for interaction-native boundaries. It provides the Statement.IsSound and Context.IsComplete predicates for plain boundaries, along with mechanisms to flatten oracle-aware boundaries into these plain representations. No sorry or admit placeholders are used in these definitions.
  • ArkLib/Interaction/Boundary/Core.lean: This file introduces the core framework for "interaction boundaries," providing definitions like Statement, Witness, and Context to reinterpret protocol interfaces without altering their underlying transcript or round structure. It includes pullback functions that adapt verifiers, provers, and reductions to these new interfaces through input projection and output lifting. No sorry or admit placeholders are introduced.
  • ArkLib/Interaction/Boundary/Oracle.lean: This new file implements the oracle access layer for interaction-native boundaries, introducing the core definitions and theorems needed to translate "inner" oracle queries into "outer" oracle computations. It provides the pullbackCounterpart and pullbackSimulate mechanisms for rewiring protocol trees and verifier simulations, along with proofs that these transformations preserve operational behavior. The file contains no sorry or admit placeholders.
  • ArkLib/Interaction/Boundary/OracleSecurity.lean: This file defines the infrastructure for transporting oracle-based security properties across interaction boundaries, focusing on verifier simulation and honest execution views. It introduces several new definitions and theorems, most notably simulates_pullback, which proves that boundary pullbacks preserve the correspondence between concrete oracle materialization and simulated oracle behavior for both verifiers and reductions. No sorry or admit placeholders are included.
  • ArkLib/Interaction/Boundary/Reification.lean: This file introduces the reification layer for interaction-native boundaries, defining structures for concrete oracle materialization (OracleStatementReification) and a coherence predicate (Realizes) to ensure agreement with the simulation-based access layer. It provides bundled OracleStatement and OracleContext definitions, proves several theorems regarding the consistency between simulation and materialized oracle data, and implements a pullback operation for reinterpreting oracle reductions across boundaries. No sorry or admit placeholders are present in the code.
  • ArkLib/Interaction/Boundary/Security.lean: This new file establishes theorems and definitions for transporting security properties, specifically soundness and completeness, of verifiers and reductions across interaction-native boundaries via pullback operations. It provides formal proofs that security guarantees are preserved when lifting components from an inner protocol to an outer one, with no sorry placeholders in the implementation.
  • ArkLib/Interaction/FiatShamir/Basic.lean: This file introduces the foundational definitions for the Fiat-Shamir transform, defining ReplayOracle as a deterministic counterpart and MessagesOnly as the data type for non-interactive proofs. It includes the deriveTranscript function to reconstruct interactive transcripts from messages-only proofs and contains no sorry placeholders.
  • ArkLib/Interaction/FiatShamir/DuplexSponge.lean: This file introduces a concrete duplex sponge instantiation of the Fiat-Shamir transform, defining the SpongeAnnotation structure for node-specific serialization and the buildSpongeReplayOracle function to generate deterministic challenges. It provides high-level definitions, such as PublicCoinReduction.duplexSpongeFiatShamir, to convert interactive public-coin protocols into non-interactive ones without the use of sorry or admit placeholders.
  • ArkLib/Interaction/FiatShamir/Transform.lean: This file implements the Fiat-Shamir transform for public-coin interactive protocols by replacing random verifiers with deterministic replay oracles. It introduces definitions for transforming interactive provers, verifiers, and reductions into their non-interactive counterparts, allowing for the generation and verification of "messages-only" proofs. No sorry or admit placeholders are included.
  • ArkLib/Interaction/Oracle/BCS.lean: This file introduces the BCS (Ben-Sasson–Chiesa–Spooner) transform for Oracle.Spec, which converts interactive oracle protocols into non-interactive arguments by committing to oracle messages. It provides a comprehensive set of definitions for transformed specifications, commitment decorations, and shared transcripts, alongside utilities for wrapping prover strategies and decomposing verifiers into public-query phases. No sorry or admit placeholders are included in the implementation.
  • ArkLib/Interaction/Oracle/Bridge.lean: This file introduces new definitions to bridge legacy W-type-based interaction specifications and decorations into the new Interaction.Oracle.Spec inductive format. It provides structural conversions for specifications, roles, and oracle interfaces, using a default value function to resolve message representatives at sender nodes.
  • ArkLib/Interaction/Oracle/Chain.lean: This file introduces the Oracle.Spec.Chain type, a recursive telescope used to represent N-round oracle protocols by bundling specifications, decorations, and transcript-dependent continuations. It provides definitions to flatten these chains into single Oracle.Spec instances and includes machinery to compose per-round prover and verifier steps into a complete Oracle.Reduction. No sorry or admit placeholders are introduced.
  • ArkLib/Interaction/Oracle/Composition.lean: This file introduces infrastructure for composing Oracle.Reduction objects, including identity reductions, shared input reindexing, and sequential binary composition. It provides specialized utilities for composing provers and verifiers via structural recursion to ensure definitional computation of interaction specifications without the need for type casts. No sorry or admit placeholders are present in the code.
  • ArkLib/Interaction/Oracle/Continuation.lean: This file introduces new definitions and theorems for the sequential and multi-round composition of oracle reductions in interactive protocols. It defines an inductive Chain type to represent intrinsic round structures and a comp operator for binary composition, supported by theorems that establish the equivalence of composed simulators. The implementation contains no sorry or admit placeholders.
  • ArkLib/Interaction/Oracle/Core.lean: This file establishes the core framework for path-dependent oracle access in interaction protocols by bridging generic specifications with the VCVio oracle computation model. It introduces several new definitions and theorems, including OracleDecoration, OracleProver, and OracleReduction, to support round-by-round challengers and reductions with growing oracle access. The implementation is complete with no sorry or admit placeholders.
  • ArkLib/Interaction/Oracle/Execution.lean: This file establishes the operational framework for executing oracle-decorated reductions, providing the machinery to simulate prover-verifier interactions with evolving oracle specifications. It introduces new definitions, theorems, and equivalence relations—such as runWithOracleCounterpart, executeConcrete, and HonestExecutionEquivalent—to formalize the execution and composition of oracle-aware computations. No sorry or admit placeholders are present in the implementation.
  • ArkLib/Interaction/Oracle/Spec.lean: This file introduces the Oracle.Spec inductive type and its associated infrastructure to formally specify oracle-based interaction protocols, distinguishing between public messages and oracle-accessible sender messages. It provides new definitions for roles, decorations, and transcript projections, along with theorems for managing sequential composition and query routing. There are no sorry or admit placeholders in the file.
  • ArkLib/Interaction/Oracle/StateChain.lean: This file introduces infrastructure for composing oracle interactions into state chains, providing a mechanism to thread prover/verifier state and accumulated oracle specifications across multiple protocol stages. It defines stateChainVerifier and OracleReduction.stateChainComp to construct complex multi-stage oracle reductions from simpler individual steps. No sorry or admit placeholders are present in the implementation.
  • ArkLib/Interaction/OracleReification.lean: This file establishes a bridge between abstract oracle behaviors and concrete oracle statements, introducing the Reification structure and derived security definitions such as reifiedSoundness and reifiedCompleteness. It includes several new definitions and theorems, notably proving that reified knowledge soundness implies reified soundness and providing query-level simulation results for oracle composition. The proofs are complete and contain no sorry or admit placeholders.
  • ArkLib/Interaction/Reduction.lean: This file introduces a new framework for interactive protocols by defining Prover, Verifier, and Reduction types based on W-type interaction trees (Spec). It provides support for public-coin protocols, sequential composition of reductions, and execution over stateful or stateless chains, including a theorem characterizing the output of composed reductions. No sorry or admit placeholders are used.
  • ArkLib/Interaction/Security.lean: This file introduces formal security definitions for interactive reductions, including completeness, soundness, and knowledge soundness, alongside theorems for their composition. It provides a structural "claim tree" framework for round-by-round analysis, allowing protocol-level security bounds to be derived from local properties of sender and receiver nodes. No sorry or admit placeholders are present in the code.
  • ArkLib/OracleReduction/BCS/Basic.lean: This change deletes the file ArkLib/OracleReduction/BCS/Basic.lean, which contained preliminary and incomplete definitions for the BCS transformation. The deleted code included a helper function for renaming protocol messages and several unfinished, commented-out stubs that utilized sorry placeholders.
  • ArkLib/ProofSystem/Fri/Interaction/Core.lean: This new file establishes the core executable definitions and interaction specifications for an interaction-native implementation of the FRI protocol. It introduces structural definitions for domain indexing, protocol round specifications (using the Interaction framework), and honest prover logic, while including sorry placeholders for two theorems regarding polynomial degree bounds after folding.
  • ArkLib/ProofSystem/Fri/Interaction/FinalFold.lean: This file introduces the finalFoldContinuation definition, which implements the terminal fold round of the FRI protocol within an interactive oracle reduction framework. It defines the prover and verifier logic for sampling a final challenge and computing the final degree-bounded polynomial and its associated statement.
  • ArkLib/ProofSystem/Fri/Interaction/FoldPhase.lean: This file introduces the definitions and logic necessary to chain $k$ non-final FRI folding rounds into a single interaction continuation. It defines the protocol's state transitions, transcript reconstruction, and the core foldPhaseContinuation using a modular oracle-reduction framework, without the use of any sorry placeholders.
  • ArkLib/ProofSystem/Fri/Interaction/FoldRound.lean: This file introduces the foldRoundContinuation definition to model a single non-final FRI folding round as a modular oracle reduction. It implements the logic for the honest prover's polynomial folding, the verifier's challenge sampling, and oracle simulation for the resulting folded codewords without any sorry placeholders.
  • ArkLib/ProofSystem/Fri/Interaction/General.lean: This new file serves as an umbrella module for the interaction-native FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity) protocol development. It provides documentation for the protocol's architectural components, such as folding rounds and query phases, while currently acting as an organizational entry point with no new theorems or definitions.
  • ArkLib/ProofSystem/Fri/Interaction/Protocol.lean: This file defines the full interaction-native FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity) protocol by composing the folding and query phases using OracleReduction.comp. It introduces new definitions for the terminal phase and the complete protocol reduction logic, and it contains no sorry placeholders.
  • ArkLib/ProofSystem/Fri/Interaction/QueryRound.lean: This new file formalizes the FRI query phase by introducing definitions and logic for sampling query batches and performing consistency checks across FRI rounds. It provides both direct and oracle-based functions to verify that sampled base-domain indices remain consistent with folded codewords and the terminal polynomial. No sorry or admit placeholders are used in the implementation.
  • ArkLib/ProofSystem/Sumcheck/Interaction/CompPoly.lean: This file introduces computable, cast-free operations for CMvPolynomial and CPolynomial tailored for the Sum-check protocol, including partial evaluation, domain summation, and a bridge to univariate polynomials. It establishes the ResidualPoly structure for tracking prover state, though most correctness and degree-preservation proofs are currently marked with sorry placeholders.
  • ArkLib/ProofSystem/Sumcheck/Interaction/Defs.lean: This file introduces the core definitions for an interaction-native sum-check protocol, including interaction specifications (roundSpec, fullSpec), state transition logic (advance), and per-round verification functions (roundCheck). It defines the algebraic structure for representing polynomials and sum-claims across multi-round interactions using the VCVio framework. No sorry or admit placeholders are present.
  • ArkLib/ProofSystem/Sumcheck/Interaction/General.lean: This new file implements the general $n$-round oracle-native sum-check protocol by recursively composing single-round interactions within the VCVio framework. It introduces definitions for both stateless and stateful prover strategies—sumcheckReduction and sumcheckReductionStateful—alongside placeholder completeness and soundness theorems. While the file contains no sorry or admit placeholders, the security proofs are currently trivial and intended for future implementation.
  • ArkLib/ProofSystem/Sumcheck/Interaction/Oracle.lean: This file introduces new definitions for an oracle-native sum-check protocol, specifically providing roundOracleDecoration and oracleVerifierStep to handle single-round verifier logic and polynomial oracle queries. These components support a continuation-based refactor where the prover's univariate messages are treated as queryable oracles. No sorry or admit placeholders are included.
  • ArkLib/ProofSystem/Sumcheck/Interaction/SingleRound.lean: This file formalizes a single round of the sum-check protocol as an oracle reduction, providing definitions for computing residual polynomials, univariate round polynomials, and honest prover steps. It introduces both stateless and stateful implementations of the round continuation and provides theorems proving their public and execution equivalence in honest settings. No sorry or admit placeholders are included in the code.
  • CONTRIBUTING.md: This update expands the style guide to emphasize code readability through the use of standard Lean notation, existing library combinators, and term-style definitions over tactics. Additionally, it establishes stricter quality standards for docstrings, requiring they focus on mathematical descriptions while prohibiting historical commentary or references to renamed or removed definitions.
  • INTERACTION_BOUNDARIES.md: This document provides the design specification for the ArkLib.Interaction.Boundary framework, which enables protocol interface adaptation (statement, witness, and oracle reinterpretation) while preserving the underlying transcript and round structure. It establishes a three-layer architecture—Core, Access, and Reification—to formalize how verifier simulations and prover materializations are "pulled back" across boundaries, explicitly decoupling these interface mappings from sequential protocol composition.
  • INTERACTION_BRACHA_VERIFICATION.md: This document identifies Bracha Reliable Broadcast (RBC) as a primary benchmark for the Interaction library, noting its suitability for testing the framework’s concurrency, multiparty, and liveness features. It maps the landscape of existing protocol formalizations, such as Bythos and Veil, to position Interaction as an interaction-centric alternative that prioritizes Lean-native verification over external SMT solvers.
  • INTERACTION_CONCURRENT_SPEC.md: This design reference outlines a concurrent extension for the ArkLib.Interaction library, proposing a minimal continuation-based kernel centered on binary structural parallelism. It establishes a frontier-residual operational semantics to support adversarial scheduling and provides a comprehensive roadmap for integrating diverse concurrency mental models, such as state machines and partial-order semantics.
  • INTERACTION_PROTOCOL_ROADMAP.md: This new documentation file outlines a strategic roadmap for evolving the Interaction module into a generalized semantic framework for modeling and verifying concurrent protocols. It details a six-phase development plan covering core concurrency foundations, choreography frontends, knowledge-based security, and causal models. The proposed architecture prioritizes first-class support for partial observability, scheduler control, and causal equivalence across diverse protocol families.
  • blueprint/src/coding_theory/defs.tex: This update refines the mapping between blueprint definitions and the Lean formalization by providing more precise, namespaced paths for interleaved codes and proximity measures. It also improves the formatting of references for generator matrices.
  • blueprint/src/content.tex: This update introduces the "Interaction Framework" chapter to the project blueprint, establishing the foundational structure for modeling multi-party protocols and oracles. It integrates several new modules covering key concepts such as composition, security definitions, the Fiat-Shamir transform, and the BCS construction.
  • blueprint/src/interaction/bcs.tex: This file formalizes the Ben-Sasson–Chiesa–Spooner (BCS) transformation for hybrid oracle reductions, extending the standard protocol from simple oracle proofs to reductions that output queryable oracles for modular composition. It introduces HybridSpec to distinguish between plain and committed messages and establishes a "query completeness" condition to ensure that output simulations remain functional using Phase 2 opening data.
  • blueprint/src/interaction/boundary.tex: This file introduces the concept of protocol "Boundaries," providing a dependent-type-native framework for reinterpreting statement, witness, and oracle interfaces without altering transcript structures. It defines a layered architecture for query simulation and concrete data reification, establishing the necessary pullback operations and coherence predicates (such as Realizes) to transport soundness and completeness properties across protocol layers.
  • blueprint/src/interaction/composition.tex: This file documents the formalization of sequential composition and iteration mechanisms for interaction specifications and strategies. It introduces the liftAppend combinator to manage dependent types without explicit casts and defines various iteration patterns, including state-indexed chains and continuation-based telescopes.
  • blueprint/src/interaction/fiat_shamir.tex: This document specifies a Fiat-Shamir transform for dependent interaction trees, where the protocol's future shape can depend on earlier verifier challenges. It introduces a PublicCoinCounterpart structure to enable verifier-side transcript replay and defines a method for reconstructing full transcripts from sender-only message sequences using a deterministic replay oracle.
  • blueprint/src/interaction/foundations.tex: This file introduces the foundational theory for modeling interactive protocols as dependently-typed trees (Spec), allowing for protocols where message spaces and round counts depend on previous moves. It defines core abstractions including Transcript, metadata Decoration, and monadic Strategy, prioritizing structural recursion over index-based arithmetic to simplify protocol composition and reasoning.
  • blueprint/src/interaction/oracle.tex: This file adds a new section to the blueprint defining the formal framework for path-dependent oracle access in interactive oracle proofs. It introduces definitions for OracleDecoration and QueryHandle to model queryable transcript messages and provides a bridge to the generic Counterpart.withMonads framework to enable compositional OracleReduction and OracleVerifier structures.
  • blueprint/src/interaction/security.tex: This file defines the formal security framework for interactions, including completeness, soundness, and knowledge soundness for both standard and oracle-based reductions. It introduces "claim trees" for round-by-round security analysis and provides composition theorems for maintaining these properties across protocol phases.
  • blueprint/src/interaction/two_party.tex: This file adds the formal specification for two-party and multi-party interactions by decorating existing interaction trees with sender and receiver roles. It defines the duality between choosing moves ($\Sigma$-types) and responding to them ($\Pi$-types) to formalize strategies, counterparts, and role-aware refinements for oracle-based verification.
  • blueprint/src/macros/common.tex: This update introduces a set of LaTeX macros to support the formal documentation of a Spec-based interaction framework built on W-types. The new commands cover core concepts such as strategies, roles, decorations, and oracles.
  • blueprint/src/oracle_reductions/defs.tex: This update reformats the Lean declaration tags in the blueprint to use individual \lean{} commands for each term instead of comma-separated lists. This change likely improves the granularity of the mapping between the formal LaTeX definitions and their corresponding Lean 4 implementations.
  • blueprint/src/polynomials/defs.tex: This update removes the explicit Lean implementation tags UniPoly and MlPoly from the blueprint definitions for computable univariate and multilinear polynomials. This effectively decouples these high-level definitions from their specific Lean identifiers in the documentation.
  • blueprint/src/proof_systems/binius.tex: The changes remove \lean command references that linked mathematical definitions and theorems for binary tower fields to specific Lean identifiers. This decouples the high-level documentation in the blueprint from the underlying formal implementation names.
  • blueprint/src/proof_systems/simple_protocols.tex: The changes refine the mapping between the blueprint and the Lean implementation by splitting combined \lean tags into individual commands for the DoNothing reduction. Additionally, the reference to CheckClaim.oracleReduction_completeness was removed, likely to reflect changes in the underlying formalization.
  • blueprint/src/proof_systems/stir.tex: This update refines the LaTeX blueprint by splitting grouped Lean declaration links into individual \lean commands. This change ensures each formal theorem and definition is explicitly and separately mapped to its corresponding mathematical lemma.
  • blueprint/src/proof_systems/whir.tex: This documentation update refines the Lean tags in the blueprint by splitting multi-item \lean commands into separate entries. These changes improve the mapping between the LaTeX definitions and their corresponding Lean declarations for the WHIR proof system.
  • blueprint/src/references.bib: Adds bibliographic references covering foundational research in dependent type theory and ornaments, as well as contemporary cryptographic works on Fiat-Shamir transformations, SNARK architectures (Zinc, Jolt), and post-quantum security.
  • blueprint/src/vcv/defs.tex: This PR updates the Lean 4 cross-reference tags in the blueprint to accurately match the namespaces and naming conventions used in the formal library. These refinements ensure that definitions such as OracleSpec, evalDist, and various simulation oracles are correctly linked to their corresponding Lean implementations.
  • docs/wiki/README.md: This update expands the wiki index with links to several new design references, roadmaps, and benchmarks concerning the "Interaction" protocol framework. These additions cover topics such as concurrent interaction, protocol verification benchmarks (e.g., Bracha reliable broadcast), and Universal Composability (UC) design sketches.
  • docs/wiki/repo-map.md: This update documents a major architectural shift from the legacy OracleReduction framework to a new Interaction framework based on W-types, designating the latter as the repository's new conceptual center. It adds detailed mappings for the new BCS transformation modules and expands the concurrency section to cover structural concurrency, dynamic process semantics, and open-boundary primitives.
  • scripts/README.md: This update corrects the documentation for validate.sh to reflect that the script now enforces a zero-warning policy (excluding sorry placeholders) for the ArkLib/Interaction/ directory. This expands the existing linting requirements previously only noted for ArkLib/Data/.
  • scripts/check-docs-integrity.py: The script now uses git ls-files to identify markdown files within the documentation and script directories. This change ensures that integrity checks are performed only on files tracked by Git, preventing the processing of untracked or local-only files.
  • scripts/validate.sh: This update extends the validation script to enforce a zero-warning policy (excluding sorry placeholders) for the ArkLib/Interaction/ directory. This ensures that any new code in this section of the library must be free of warnings before passing the CI check.
  • ArkLib/Interaction/Oracle/Security.lean: This file introduces new security definitions for the Oracle.Spec framework, formalizing completeness, soundness, and knowledge soundness for oracle-based protocols. It defines core types for oracle behavior and relations—such as InputImpl, OutputRealizes, and InputRelation—and includes a theorem stating that knowledge soundness implies soundness which currently contains a sorry placeholder.
  • PORTING.md: This document tracks the "Core Rebuild" project, documenting the migration from a flat protocol model to a more flexible architecture based on W-type interaction trees (Spec) and role-based decorations. It serves as a comprehensive progress report and architectural specification for the library's new modular interaction, oracle, and security layers.
  • ArkLib/Interaction/OracleSecurity.lean: This Lean file introduces formal definitions for security notions in oracle-based interaction protocols, specifically completeness, soundness, and knowledge soundness. It utilizes a "behavior-first" design where security properties are defined relative to oracle implementations and transcripts rather than concrete materialization. The file includes new definitions for straightline extractors and input/output relations, one new theorem, and contains no sorry placeholders.

Last updated: 2026-04-14 14:04 UTC.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 28, 2026

Build Timing Report

  • Commit: 3f299d7
  • Message: Merge 464bbbe into b5d5002
  • Ref: quang/core-rebuild
  • Comparison baseline: 20428b1 from the previous successful PR update.
  • Measured on ubuntu-latest with /usr/bin/time -p.
  • Commands: clean build rm -rf .lake/build && lake build; warm rebuild lake build; validation wrapper ./scripts/validate.sh.
Measurement Baseline (s) Current (s) Delta (s) Status
Clean build 693.83 956.58 +262.75 exit 1
Warm rebuild 2.00 - - -
Validation wrapper 2.05 - - -

Incremental Rebuild Signal

  • Clean:warm comparison is unavailable because one of the build measurements is missing.

This compares a clean project build against an incremental rebuild in the same CI job; it is a lightweight variability signal, not a full cross-run benchmark.

Slowest Current Clean-Build Files

Showing 20 slowest current targets, with comparison against the selected baseline when available.

Current (s) Baseline (s) Delta (s) Path
133.00 201.00 -68.00 ArkLib/ProofSystem/Component/RandomQuery.lean
64.00 66.00 -2.00 ArkLib/ProofSystem/Fri/Spec/SingleRound.lean
63.00 62.00 +1.00 ArkLib/Data/CodingTheory/JohnsonBound/Lemmas.lean
62.00 56.00 +6.00 ArkLib/Data/CodingTheory/GuruswamiSudan/Basic.lean
50.00 48.00 +2.00 ArkLib/Data/CodingTheory/ProximityGap/BCIKS20/AffineLines/BWMatrix.lean
42.00 59.00 -17.00 ArkLib/Data/CodingTheory/BerlekampWelch/Condition.lean
37.00 34.00 +3.00 ArkLib/Data/CodingTheory/ProximityGap/DG25/MainResults.lean
35.00 29.00 +6.00 ArkLib/Data/CodingTheory/JohnsonBound/Basic.lean
33.00 37.00 -4.00 ArkLib/Data/CodingTheory/DivergenceOfSets.lean
33.00 33.00 +0.00 ArkLib/ProofSystem/Fri/Domain.lean
30.00 43.00 -13.00 ArkLib/OracleReduction/LiftContext/Reduction.lean
29.00 21.00 +8.00 ArkLib/Data/CodingTheory/PolishchukSpielman/Existence.lean
27.00 30.00 -3.00 ArkLib/Data/CodingTheory/ProximityGap/BCIKS20/AffineLines/GoodCoeffs.lean
27.00 34.00 -7.00 ArkLib/OracleReduction/Security/RoundByRound.lean
23.00 22.00 +1.00 ArkLib/Data/CodingTheory/ProximityGap/BCIKS20/AffineLines/JointAgreement.lean
19.00 17.00 +2.00 ArkLib/Data/CodingTheory/PolishchukSpielman/Degrees.lean
19.00 36.00 -17.00 ArkLib/ProofSystem/BatchedFri/Security.lean
18.00 16.00 +2.00 ArkLib/Data/Hash/Poseidon2.lean
18.00 18.00 +0.00 ArkLib/ProofSystem/Binius/BinaryBasefold/Prelude.lean
17.00 13.00 +4.00 ArkLib/Data/CodingTheory/ProximityGap/BCIKS20/ListDecoding/Extraction.lean

Add "Authors: Quang Dao" to all Interaction files missing it.
Rewrite Spec, Transcript, and ofList docstrings for clarity.

Made-with: Cursor
Simplify Prover/Verifier/Reduction types: WitnessIn is plain, VerOutput
deleted (verifier returns StatementOut), WitnessOut independent of
StatementOut. Add Security.lean with completeness, soundness, knowledge
soundness, ClaimTree, KnowledgeClaimTree, and round-by-round definitions.
Update Oracle.lean, TwoParty Strategy/Compose, and Multiparty accordingly.

Made-with: Cursor
autoImplicit = false is already set globally in lakefile.toml.
Remove the duplicate set_option from all Interaction files and
document this in AGENTS.md.

Made-with: Cursor
…tors, overhaul docstrings

Rename `Transcript.appendFamily` -> `liftAppend`, `Transcript.join` -> `append`
(freeing `join` for n-ary flattening), and propagate across all files. Reorder
Append.lean so `liftAppend` precedes `append`/`split` and `comp` precedes `compFlat`.

Add new n-ary chain combinators in Chain.lean: `Transcript.chain` (telescope type),
`Transcript.join`/`unjoin` (flatten/unflatten isomorphism with round-trip simp lemmas),
`Transcript.liftJoin` (lift telescope-indexed families to chain transcripts).
Rename `Spec.chainFamily` -> `Transcript.chainFamily`.

Rewrite all docstrings in Append.lean, Chain.lean, and Compose.lean to be intrinsic
and intuitive. Add docstring quality rule to CONTRIBUTING.md and AGENTS.md.

Made-with: Cursor
…hain

Move the continuation-style intrinsic chain (formerly `Spec.Unfolding`
in `ChainIntrinsic.lean`) into `Basic/Chain.lean` as the canonical
`Spec.Chain` API. Extract the old stage-indexed `Spec.chain` into a
new `Basic/StateChain.lean` under the explicit `stateChain` prefix.

Chain.lean now provides:
- `Spec.Chain` (depth-indexed telescope: round spec + continuation)
- `Chain.toSpec` (convert to concrete `Spec` via `Spec.append`)
- `Chain.replicate`, `Chain.ofStateMachine` (derived constructors)
- `Chain.splitTranscript` / `Chain.appendTranscript` (telescope ops)
- `Chain.strategyComp` / `Chain.strategyCompUniform` (composition)

StateChain.lean preserves the full legacy API under `stateChain*` names.

Made-with: Cursor
…eChain

Merge the intrinsic reduction layer (formerly `ReductionIntrinsic.lean`)
into `Reduction.lean` as the default `Reduction.ofChain` surface.
Rename all stage-threaded chain identifiers to `stateChain*` across
TwoParty, Reduction, and Oracle modules.

Reduction.lean gains:
- `Decoration.ofChain` / `Chain.roles` (role decoration from Chain)
- `Strategy.ofChain` / `Counterpart.ofChain` (recursive composition)
- `Reduction.ofChain` (stateless chain-based reduction composition)

Renames in TwoParty:
- `RoleDecoration.chain` → `RoleDecoration.stateChain`
- `Counterpart.chainComp*` → `Counterpart.stateChainComp*`
- `Strategy.chainCompWithRoles*` → `Strategy.stateChainCompWithRoles*`

Renames in Oracle:
- `OracleReduction.chainComp` → `OracleReduction.stateChainComp`
- `toMonadDecoration_chain` → `toMonadDecoration_stateChain`

Made-with: Cursor
Express the sumcheck protocol using the Interaction.Spec framework:

- CompPoly.lean: CDegreeLE / CMvDegreeLE types, computable partial
  evaluation, domain summation, roundPoly, OracleInterface instances
- Defs.lean: shared algebraic core (RoundClaim, summation domain,
  round spec with role decoration)
- SingleRound.lean: one-round spec, honest prover step, verifier step
- General.lean: n-round stateChain composition, full spec/roles,
  reduction via stateChainCompUniform
- Oracle.lean: oracle decoration, verifier step stub (sorry)

Made-with: Cursor
Regenerate the umbrella import file to include new StateChain and
Sumcheck/Interaction modules. Update PORTING.md architecture section
and phase descriptions to reflect the Chain/StateChain naming, the
merged intrinsic reduction layer, and initial Sumcheck progress.

Made-with: Cursor
… and theorems

Replace every `show ... from by simpa using` cast pattern with named
recursive transport functions `Transcript.packAppend` / `unpackAppend`.
Rewrite `Reduction.comp` to use non-flat `Strategy.compWithRoles` +
`Counterpart.append`, add bridge lemma
`Counterpart.append_eq_appendFlat_mapOutput`, and reprove
`completeness_comp` / `soundness_comp` against the new structure.
Update PORTING.md with Phase 4d progress.

Made-with: Cursor
Return the next statement alongside the next witness so composed reductions can enforce prover/verifier statement agreement in completeness and reuse the same transport across the oracle and sumcheck interaction layers.

Made-with: Cursor
AI-authored by Codex (GPT-5) on behalf of Quang Dao.
quangvdao added 13 commits April 3, 2026 22:41
Add a symmetric refinement layer over process systems with packaged controller, path, ticket, trace, and observation equivalence notions.

Extend the concurrent examples with bisimulation-based preservation results and wire the new modules into the public Interaction surface.
Extend the concurrent design reference with a literature-grounded comparison matrix and borrowing guide, add the standalone Interaction protocol roadmap, and link both from the wiki index.
Add a design note on Bracha reliable broadcast as an Interaction benchmark, compare Bythos and Veil, survey verified distributed-protocol frameworks, and state the kernel-only proof-trust policy for future Interaction verification layers.
Rewrite the main concurrent Interaction docstrings to lead with
semantic role and intended use rather than representation details.

Also tighten the comparison and policy layers so readers from
cryptography or distributed systems can orient quickly without
already thinking in PL semantics.
Generalize the concurrent execution stack over ProcessOver and keep
closed-world Process APIs as explicit specializations.

- move execution, run, fairness, liveness, policy, and refinement
  machinery onto the generic ProcessOver core
- remove leftover phantom Party parameters from the generic
  refinement and bisimulation layers
- restore closed-world convenience lemmas and examples with
  explicit specializations so the public API stays clear

Verification:
- lake build ArkLib.Interaction.Concurrent.Examples
- lake build ArkLib
- python3 ./scripts/check-docs-integrity.py
Introduce the first structural open-world layer for concurrent
interaction.

- add Concurrent.Interface with Interface := PFunctor, packet and
  query aliases, and packet-level interface morphisms
- add PortBoundary with empty, swap, tensor, and variance-correct
  boundary morphisms
- update the concurrent module map docs and regenerate ArkLib.lean

Verification:
- lake build ArkLib.Interaction.Concurrent.Interface
- python3 ./scripts/check-docs-integrity.py
Add the first algebraic law layer for the open-composition direction.
- reuse native PFunctor coproducts for interface sums
- add packet/query coproduct structure and boundary tensor/swap laws
- add lawful map/par/plug classes for OpenTheory

This keeps the open-world work operations-first while making the
structural API precise enough for the first concrete model.
Add interface and boundary equivalence structure for the open-composition
layer, together with canonical tensor/unit/symmetry coherence data.
Also add equivalence-guided remapping in OpenTheory via mapEquiv and
its first transport laws.

This keeps map/par/wire/plug as the small OpenTheory kernel while moving
boundary reshaping below it into Interface and PortBoundary.
Extend the open-composition layer with mapEquiv transport for par,
wire, and plug, and add the interface/boundary bridge lemmas needed
to connect boundary equivalences back to chart-level composition.

This keeps the OpenTheory kernel small while making boundary
reassociation and symmetry usable in theorem statements.
Finish the binary oracle composition theorem surface by proving the
public fused simulator bridge and its concrete reified specialization.

This closes the remaining append-boundary transport gap across:
- oracle append transport helpers
- continuation-level fused simulation
- reified concrete query simulation
@quangvdao quangvdao changed the title Interaction: split Basic/TwoParty modules + Decoration.swap feat(Interaction): full interaction framework with concurrent semantics, open composition, and protocol frontends Apr 7, 2026
Made-with: Cursor

# Conflicts:
#	ArkLib/ProofSystem/Fri/RoundConsistency.lean
Move 50 files (Basic/*, TwoParty/*, Concurrent/*, Multiparty/*) from
ArkLib/Interaction/ to VCVio/Interaction/. These are pure interaction
theory modules with no reduction/oracle-specific dependencies.

Kept files (Reduction, Security, Oracle/*, Boundary/*, FiatShamir/*)
now import from VCVio.Interaction instead of ArkLib.Interaction.
VCVio dependency updated to quang/interaction-migration branch.

Made-with: Cursor
Implement the duplex sponge instantiation of the Fiat-Shamir transform
for the interaction-native formalization. The basic FS transform is
parametric in the ReplayOracle; this constructs a specific ReplayOracle
from a duplex sponge with a concrete permutation.

New definitions:
- SpongeAnnotation: per-node serialization metadata (serialize at sender
  nodes, squeeze length + deserialize at receiver nodes)
- buildSpongeReplayOracle: thread a CanonicalDuplexSponge through the
  Spec tree to produce a ReplayOracle
- spongeReplayOracle / toFSStatement: statement initialization wrappers
- Prover/PublicCoinVerifier/PublicCoinReduction.duplexSpongeFiatShamir:
  the full transform, composing with the existing basic FS machinery

Made-with: Cursor
@quangvdao quangvdao force-pushed the quang/core-rebuild branch from c5d277e to 5861161 Compare April 11, 2026 13:44
Commitment scheme cutover to new Interaction.Opening interface,
streamline oracle decoration and security theorem infrastructure,
and update boundary modules for compatibility.

Made-with: Cursor
Introduce HybridSpec (branching + pass-through nodes), partial BCS
via CommitDeco, HybridDecoration for mixed plain/oracle senders,
PublicQueryVerifier decomposition, and Phase 1/2 infrastructure.
Delete the old OracleReduction/BCS/Basic.lean skeleton.

Made-with: Cursor
Add blueprint formulation for BCS transformation on hybrid oracle
reductions, CDHZ reference, and update wiki with new BCS modules.

Made-with: Cursor
Introduce Oracle.Spec, a new inductive type (.done, .public, .oracle)
that structurally distinguishes public and oracle messages, giving
definitional independence of downstream types from oracle message values.

New files:
- Spec.lean: core inductive, RoleDeco, OracleDeco, PublicTranscript,
  QueryHandle, toOracleSpec, restrictLeft/restrictRight
- Composition.lean: Reduction.id, comp, freezeSharedToPUnit, pullbackShared
- Bridge.lean: conversion from old Interaction.Spec + OracleDecoration
- BCS.lean: BCS transform directly on Oracle.Spec (CommitDeco,
  SharedTranscript, bcsSpec, wrapWithCommitments, PublicQueryVerifier)

Modified files:
- Core.lean: Oracle.Prover, Oracle.Verifier, Oracle.Reduction structures
- Execution.lean: Spec.runWithOracleCounterpart, Reduction.executeConcrete
- ArkLib.lean: imports for new modules

Made-with: Cursor
- Remove accSpec parameter from Oracle.Verifier.toFun, hardcode to []ₒ
- Add liftCounterpartAcc helper to lift counterpart accumulated oracle
  specs in composition (no sorry)
- Rewrite completeness with OutputRealizes conjunct
- Rewrite knowledgeSoundness: adversarial prover outputs oStmtOut,
  extractor sees concrete oracle data
- Add oStmtOut parameter to Extractor.Straightline
- Remove duplicate Verifier.InputRelation/OutputRelation/Accepts
- Inline Accepts into soundness definition
- Update blueprint security section to match new definitions

Made-with: Cursor
…s hypothesis

- Add answerCommittedQueries: compute committed oracle responses from
  a full transcript (deterministic, pure)
- Add bcsPhase2: evaluate PublicQueryVerifier.decide with pre-computed
  query data
- Strengthen hLangOut in knowledgeSoundness_implies_soundness to include
  OutputRealizes conjunct (required for the proof to go through)
- Add detailed proof strategy comment for KS→soundness

Made-with: Cursor
- Add OpeningDeco structure to Oracle/BCS.lean: generic opening proof
  data for committed oracle nodes, parameterized by OpeningProof type
- Update PORTING.md with comprehensive Oracle.Spec layer status:
  file inventory, design decisions, updated TODO list
- Update KS→soundness open question to reflect new formulation

Made-with: Cursor
- Add N-ary chain composition (Oracle/Chain.lean) with Spec.Chain,
  Chain.Prover.comp, Chain.Verifier.comp, and Reduction.ofChain
- Prove Spec.runWithOracleCounterpart_mapOutputWithRoles in Execution.lean
- Prove knowledgeSoundness_implies_soundness in Security.lean (no sorry)
- Rename for maximal namespacing: Prover.compAux, Verifier.compAux,
  Verifier.retargetMonads, Counterpart.liftAcc

Made-with: Cursor
The acceptOStmt/acceptWitness approach is circular: it asks the caller
to supply concrete oracle realizations, which is the "knowledge" that
KS should extract. Revert to sorry with honest existential statement
and document the difficulty. Delete the legacy version in
OracleSecurity.lean which had the same flaw.

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant